我使用的是Ionic3,我有一些特性要求用户通过身份验证,所以当用户单击按钮时,会显示一个警报。由于项目中到处都是功能,所以我创建了一个全局函数来显示此警报,但是当我将push()或setroot()放入其中时,项目停止工作,出现一个空白页。
import { Injectable, ViewChild } from '@angular/core';
//..............
@Injectable()
export class Alerts {
@ViewChild(Nav) nav: Nav;
constructor(private alertCtrl: AlertController) {
}
mustLogin() {
let alert = this.alertCtrl.create({
title: 'must login',
message: 'go to login ?',
buttons: [
{
text: 'Cancel',
role: 'cancel',
handler: () => {
console.log('Cancel clicked');
}
},
{
text: 'Login',
handler: () => {
this.nav.setRoot(LoginPage);
//this.nav.push(LoginPage); blank page also
}
}
]
});
alert.present();
}
}
最佳答案
你需要遵循下面的代码。
您可以在Navigating from an Overlay Component
标题下阅读更多about it here。
constructor(private appCtrl: App){}
您需要使用
this.appCtrl.getRootNav().setRoot(LoginPage);
而不是这个
this.nav.setRoot(LoginPage);
关于angular - 在服务(Ionic 3)中使用push()或setRoot()时为空白页,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45805834/