我们做ajax请求时会经常使用模态框阻止用户进行下一步的操作,例如显示 ‘正在加载...’
当我们同时请求多个接口时多次创建模态框 并每次请求成功时关闭自己的模态框,理论上是没有问题的,因为每次请求都创建自己的模态框对象,互不影响,但是当你关闭时确实有问题
可能自己对ionic3理解不够
export class HttpService {
loadingIsOpen:any;
loading:any;
constructor(public http: Httpprivate loadingCtrl: LoadingController) {
}
private showLoading(content: any = ''): void {
if(typeof content != 'string'){
content = '';
}
if (!this.loadingIsOpen) {
this.loadingIsOpen = true;
this.loading = this.loadingCtrl.create({
content: content
});
this.loading.present();
setTimeout(() => { //最长显示10秒
this.loadingIsOpen && this.loading.dismiss();
this.loadingIsOpen = false;
}, 10000);
}else{
this.loading.setContent(content);
}
};
private hideLoading(): void {
this.loadingIsOpen && this.loading.dismiss();
this.loadingIsOpen = false;
};
}
这段代码是全局创建唯一的模态框对象 用loadingIsOpen去记录目前是否有模态框(因为返回的loading 对象没有属性标示当前模态框状态,你也可以检索html是否ion-loading标签去判断)这样,大家公用一个模态框关闭就不会有问题了。
个人感觉ionic只允许一个时间点创建一个loading;
多次创建关闭时就找不到相应的模态框,也就会造成关闭不了的情况
大家可以深入研究下
后来有时间研究了下请移驾这个网址:https://blog.csdn.net/rui_code/article/details/81940036