Angular 找不到Ionic 3 LoadingController removeView

Angular 找不到Ionic 3 LoadingController removeView,angular,mobile,ionic3,Angular,Mobile,Ionic3,我正在制作一个ionic 3应用程序,希望在每个导航上添加一个加载微调器。因此,我创建了一个loadingService并将其添加到我的navigationService中,以便自动处理所有导航 为了启动和停止装载机,我使用了: export class LoaderService{ loading: Loading; constructor(public loadingCtrl: LoadingController ){ this.loading = this.

我正在制作一个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();
    }
}
在第一次导航之后,我发现了错误

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

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


问题是,使用
this.loading.disease()
loader实例时,没有正确地解除加载程序,因此在启动新加载程序之前必须执行以下操作:

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,
        })
    }
}