编辑:当使用离子2时会发生这种情况.我知道它还不稳定,但我认为可能有一些修复,因为看起来其他人没有得到这个问题.编辑结束
出于某种原因,我在尝试构建我的离子应用程序时突然开始出现此错误,使用"ionic build android",以及"ionic build ios":
An Error occurred trying to fall back to Cordova-lib execution: TypeError: Cannot read property 'then' of undefined
at Object.IonicTask.runCordova (/usr/local/lib/node_modules/ionic/lib/ionic/cordova.js:262:21)
at /usr/local/lib/node_modules/ionic/lib/ionic/cordova.js:142:19
at _fulfilled (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:787:54)
at self.promiseDispatch.done (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:816:30)
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:749:13)
at /usr/local/lib/node_modules/ionic/node_modules/q/q.js:557:44
at flush (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:108:17)
at doNTCallback0 (node.js:430:9)
at process._tickCallback (node.js:359:13)
Error happened [TypeError: Cannot read property 'then' of undefined]
TypeError: Cannot read property 'then' of undefined
at Object.IonicTask.runCordova (/usr/local/lib/node_modules/ionic/lib/ionic/cordova.js:262:21)
at /usr/local/lib/node_modules/ionic/lib/ionic/cordova.js:142:19
at _fulfilled (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:787:54)
at self.promiseDispatch.done (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:816:30)
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:749:13) …Run Code Online (Sandbox Code Playgroud) 我知道离子中有"拉下来刷新",但这会拉低观点.
我想看看是否有一个微调器在当前视图前拉下来,就像在Android Gmail应用中发生的那样
对于Android,它被称为SwipeRefreshLayout

AngularJS实现
Alularza Mirian在材料设计中 实现Pull to Refresh的 AngularJS(非Angular 2+)https://github.com/alirezamirian/angular-material-swipe-to-refresh
演示 - 你需要使用DevTools,并在PC上切换到移动模式进行触摸手势这看起来有点笨拙,虽然这是我想要的但是对于Angular 2+
我正在使用Ionic 2 Beta 11.我正在尝试向外部API发送请求,该API将返回JSON响应.我已经克服了CORS问题,我正在与API通信但是我无法发送所需的正文信息.我尝试用以下方式格式化body变量,每个都没有成功:
作为对象: {email: this.email, password: this.password}
作为字符串化对象: JSON.stringify({email: this.email, password: this.password})
作为一个字符串: 'email=' + this.email + '&password=' + this.password
这是我的代码:
import {Component} from '@angular/core';
import {NavController, MenuController} from 'ionic-angular';
import {Http, Headers, RequestOptions} from '@angular/http';
import 'rxjs/Rx';
@Component({
templateUrl: 'build/pages/login/login.html'
})
export class LoginPage {
nav: NavController;
username: string;
password: string;
constructor(nav: NavController, private http: Http) {
this.nav = nav;
}
doLogin() {
let body = JSON.stringify({
email: this.username,
password: this.password });
let headers = …Run Code Online (Sandbox Code Playgroud) 当我从'ng2-orm'导入Config时,为什么我的ng2-orm包不被导入(或被vscode识别);
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { Config } from 'ng2-orm'; // ng2-orm/Config won't work either
@NgModule({
imports: [ BrowserModule ],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
我正在努力构建我自己的TS库,用于angular2和ionic2.我已经研究和搜索,似乎无法想出为什么这是失败的,这可能只是由于我的某种不完整性.
我知道这只是一个开始,但我认为从项目内部导出的任何东西都应该是可访问的.我需要一个ngModule定义吗?
我提供了package.json,一些文件夹结构,gulp(所以你可以看到它)和tsconfig.json
一切都很精细等等.
但是,当我在角度快速启动时安装它时,它表示当我尝试导入时无法找到ng2-orm.我将所有内容都装入了index.js,并且该软件包位于node_modules文件夹中.
我错过了systemjs.config.js需要的东西吗?我不确定.我有一个typings.json,但它基本上是空的,也许我错过了那里的东西?
export * from './Config/Config';
Run Code Online (Sandbox Code Playgroud)
export class Config {
public test(): boolean { return true; }
}
Run Code Online (Sandbox Code Playgroud)
index.d.ts
export * …Run Code Online (Sandbox Code Playgroud) 我在构建iOS应用时收到以下消息:
BUILD FAILED
The following build commands failed:
CompileC build/CareShield.build/Debug-iphonesimulator/CareShield.build/Objects-normal/x86_64/UIImage+MPAverageColor.o CareShield/Plugins/cordova-plugin-mixpanel/Mixpanel/UIImage+MPAverageColor.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
Run Code Online (Sandbox Code Playgroud)
但它在Android中运行.我该如何解决?
我使用Ionic 2 sidemenu创建了一个项目
$ ionic start mySideMenu sidemenu --v2
Run Code Online (Sandbox Code Playgroud)
我只写了几个代码,只是为了测试它是否适用于iOS设备/模拟器.
page1.ts
import { Component, trigger, state, style, transition, animate } from '@angular/core';
import { NavController } from 'ionic-angular';
@Component({
selector: 'page-page1',
templateUrl: 'page1.html',
animations: [
trigger('buttonState', [
state('left', style({ transform: 'translateX(100px)', backgroundColor: 'red' })),
state('right', style({ transform: 'translateX(0)', backgroundColor: 'blue' })),
transition('left <=> right', [
animate('1000ms ease-in-out')
])
])
]
})
export class Page1 {
state: string = 'left';
constructor(public navCtrl: NavController) {
}
changeState() {
this.state = this.state == …Run Code Online (Sandbox Code Playgroud) 在HTML中:
<ion-content class="bg-style">
Run Code Online (Sandbox Code Playgroud)
在variables.scss中:
.bg-style {
background-color: #f5f0eb;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码不起作用,但它可以在其他标签等工作<a> <div>,当我把样式文件(.scss,如test.scss)放在与html文件相同的路径时,它也可以正常工作我不知道我的问题是否清楚,谢谢你的帮助.
我正在使用离子2.
我需要获取上一页的名称.
这是我的代码.
@ViewChild(Nav) nav:Nav
constructor() {
this.nav_app.viewDidEnter.subscribe(
view => console.log("Current opened view is : " + view.name);
)
}
Run Code Online (Sandbox Code Playgroud)
我还在
Current opened view is : t
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得以前的页面名称.
请告诉我,
谢谢
在这里ion-input,我只有item.type==2在列表中才能隐藏items
<ion-input type="text"></ion-input>
<div *ngFor="let item of items">
<div *ngIf="item.type == 2">
<span>The End</span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我该怎么办呢?
我想用share()用subscribe(),但得到错误信息如下.最初,我开始订阅.怎么能解决这个问题?
我的目的是在订阅中执行逻辑.需要共享以防止使用异步管道进行多次调用.
类型'订阅'不能分配给'Observable'类型.
"订阅"类型中缺少"_isScalar"属性.(属性)PostDetailPage.post:Observable
this.post = this.data.getPostById(this.postId).share().subscribe(data => {
this.post = data;
},
err => {
console.log("Oops!");
})
Run Code Online (Sandbox Code Playgroud)