我的应用程序上有一些流程,在某一时刻,我将页面推到堆栈,在该页面上,我调用一个加载对话框以进行某些数据加载。问题在于没有显示加载对话框。然后我意识到,当我回到上一页时,加载就在那里,在我的页面下方。如果在我的导航流中,我使用nav.setRoot
,而不是nav.push
,则可以正常工作,因此我认为这是带有该导航堆栈的小故障。我真的想使用nav.push
,因为它对我的应用程序更有意义。有什么想法吗?
编辑:
我调用页面的功能:
onViewUnidade(unidade){
if (unidade.tipo == "Unidade Consumidora"){
this.nav.push(UnidadeConsumidoraPage, unidade);
}else if (unidade.tipo == "Usina"){
this.nav.push(UsinaPage, unidade);
}
}
我的oninit方法:
ngOnInit(){
console.log("show loading");
this.loading = this.loadingCtrl.create({
content: "some message"
});
this.loading.present();
}
我的console.log执行,什至没有解雇它,所以我可以正确地看到它。加载和加载controller已正确导入并注入。
编辑2:我注意到这个问题仅在将加载的页面重定向到我的最后一页时才发生。如果我将其更改为常规页面,则可以正常工作。另外,在导航到新页面之前,试图将模态和popToRoot
删除……但仍然遇到同样的问题。有什么想法吗?
在文档上得到了我的答案:当您想从覆盖组件(popover,模态,警报等(导航时,我们必须使用getRootnav((方法:
时,我们必须从覆盖组件(弹出,模态,警报等(进行导航,而不是注入导航控制器。this.appCtrl.getRootNav().push(SecondPage);
希望这有助于谁遇到同样的问题!
有一个查看loadingOptions
export interface LoadingOptions {
spinner?: string;
content?: string;
cssClass?: string;
showBackdrop?: boolean;
dismissOnPageChange?: boolean;
delay?: number;
duration?: number;
}
您可以将dismissOnPageChange
设置(为true(。确保取消加载对话框或设置duration
。