Javascript 尝试关闭离子加载器时出错
我有一个Ionic3应用程序,它根据一个动作将数据发布到API,在等待动作完成时,我使用Ionic的LoadingController显示一个加载程序Javascript 尝试关闭离子加载器时出错,javascript,angularjs,ionic-framework,ionic3,Javascript,Angularjs,Ionic Framework,Ionic3,我有一个Ionic3应用程序,它根据一个动作将数据发布到API,在等待动作完成时,我使用Ionic的LoadingController显示一个加载程序 import { LoadingController } from 'ionic-angular'; 我通过以下方式声明加载程序: this.loader = this.loadingCtrl.create({ content: "Please wait..." }); 然后,我使用加载程序: doSomething(item) {
import { LoadingController } from 'ionic-angular';
我通过以下方式声明加载程序:
this.loader = this.loadingCtrl.create({
content: "Please wait..."
});
然后,我使用加载程序:
doSomething(item) {
this.loader.present().then(()=>{
this.item.begin(item).then((result) => {
this.data = result;
this.loader.dismiss();
}, (error) => {
console.log(error);
this.loader.dismiss();
});
});
}
我得到一个错误:
错误:未捕获(承诺中):已插入视图
毁坏
有人能给我指出正确的方向吗
环境:
cli packages: (/usr/local/lib/node_modules)
@ionic/cli-utils : 1.10.2
ionic (Ionic CLI) : 3.10.3
global packages:
Cordova CLI : 7.0.1
local packages:
@ionic/app-scripts : 2.1.4
Cordova Platforms : ios 4.4.0
Ionic Framework : ionic-angular 3.6.1
System:
ios-deploy : 1.9.2
Node : v7.7.1
npm : 4.1.2
OS : macOS Sierra
Xcode : Xcode 9.0 Build version 9A235
从
请注意,组件被解除后,它将不再可用,必须创建另一个组件。这可以通过将组件的创建和表示包装在可重用函数中来避免,如下面的用法部分所示
所以你的错误是因为你有“创建”和“当前”的拆分
import { LoadingController } from 'ionic-angular';
constructor(public loadingCtrl: LoadingController) { }
presentLoadingDefault() {
const loading = this.loadingCtrl.create({
content: 'Please wait...'
});
loading.present();
setTimeout(() => {
loading.dismiss();
}, 5000);
}
谢谢你,我会试一试的,看起来应该有用。。我唯一的评论是,即使在Ajax调用之后,这是否仍然有效?因此,当调用完成时,我可以调用loading.Disclose(),而不必等待默认的5000?5000?例如,调用完成后,您应该订阅可观察的返回或承诺(如果您使用承诺),然后调用Disclose。抱歉,我不明白5000是如何定义的,我在http调用中使用承诺。this.presentLoadingDefault();this.getDebt().then((res)=>{this.data=res;this.customers=this.data.data;this.loading.disease();},(err)=>{console.log(err);});我有点想避免在我的控制器上的每个函数中创建常量加载。5000只是一个计时器,一旦时间过去,将调用disclose。在你的例子中,在present-inside-presentLoadingDefault()之后,把你的http请求放在'then'中,一旦你完成了所有的逻辑