找不到离子3 LoadingController removeView

时间:2018-12-06 02:25:56

标签: angular mobile ionic3

我正在制作一个ionic 3应用程序,并希望在每个导航上添加一个加载微调器。因此,我创建了一个loadingService并将其添加到我的navigationService中,以便自动处理所有导航。

为了启动和停止加载程序,我使用了:

export class LoaderService{
    loading: Loading;
    constructor(public loadingCtrl: LoadingController ){
        this.loading = this.loadingCtrl.create({
            spinner: 'crescent'
        })
    }

    startLoader(){
        this.loading.present();
    }

    stopLoader(){
        this.loading.dismiss();
    }
}

第一次导航后出现错误

  

ERROR错误:未捕获(承诺):已插入视图   毁了

     

错误错误:未捕获(承诺):未找到removeView

1 个答案:

答案 0 :(得分:3)

问题在于this.loading.dismiss()的加载程序实例未正确关闭,因此在启动新的加载程序之前,您要做的是:

this.loading.dismissAll();
this.loading = null;

所以我这样更改了我的服务(这样做可能更好,但您会明白的。)

export class LoaderService{
    loading: Loading;
    constructor(public loadingCtrl: LoadingController ){

    }   

    startLoader(){
        this.loader();
        return this.loading.present();
    }

    stopLoader(){
        this.loading.dismissAll();
        this.loading = null;
    }

    private loader(){
        if(this.loading && this.loading.instance){
            this.stopLoader();
        }

        this.loading = this.loadingCtrl.create({
            spinner: 'crescent',
            dismissOnPageChange: true,
        })
    }
}