根据Ionic 3文档,这应该有效:
ionViewWillLeave(): boolean {
if (this.cantLeave) {
let alert = this.alertCtrl.create({
title: 'You can\'t leave',
subTitle: 'You stay and work.',
buttons: ['Oh sorry']
});
alert.present();
}
return this.cantLeave;
}
然而它并没有。警报出现,但页面仍会发生变化。但是在这里它表示return true
或return false
会告诉Ionic继续更改页面或停止它。
http://ionicframework.com/docs/api/navigation/NavController/
我做错了什么?
答案 0 :(得分:3)
您需要使用导航防护。 检查导航卫兵部分here。
生命周期挂钩 ionViewCanLeave()
而不是ionViewWillLeave
ionViewCanLeave(): boolean {
if (this.cantLeave) {
let alert = this.alertCtrl.create({
title: 'You can\'t leave',
subTitle: 'You stay and work.',
buttons: ['Oh sorry']
});
alert.present();
}
return this.cantLeave;
}