离子2:加载组件并不总是消失(随机)

时间:2016-04-25 11:14:21

标签: typescript angular loading ionic2

问)任何人都知道Ionic 2中的Loading组件是否破损或我是愚蠢的?

我正在尝试使用Ionic 2中的Loading组件,如下所示:

let loading = Loading.create({
  content: 'Loading: ',
  duration: 3000
});
nav.present(loading);

即使他们被解雇了,但他们有时会出现翻倍(即屏幕上有2个叠加,背景太深)并且他们不会被解雇。

这对我来说似乎有些不妥。

我试过保留一个全局变量并解雇每个变量:

  showLoading(nav: NavController) {
    if(!window.loadingOverlays) {
      window.loadingOverlays = [];
    }
    // only ever show one instance of the overlay.
    if(window.loadingOverlays && window.loadingOverlays.length > 0) {
      return;
    }

    let loading = Loading.create({
      content: 'Loading...'
    });
    nav.present(loading);
    window.loadingOverlays.push(loading);
  }

  hideLoading() {
    if(!window.loadingOverlays || window.loadingOverlays.length == 0) { 
      return; 
    }
    window.loadingOverlays.forEach((overlay) => {
      overlay.dismiss();
    });
    window.loadingOverlays = [];
  }

并添加并手动解除它们,但这没有效果。

1 个答案:

答案 0 :(得分:5)

我刚遇到了像你这样的问题,我通过将dismiss()之后的代码放在.then()函数返回的承诺的dismiss()中来解决它。

例如:overlay.dismiss().then(() => { /* PUT YOUR CODE HERE */ })