ionic3 使用LoadingController時需要多次加載模態框時模態框關閉不了的問題


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



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM