我們做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