Cordova 如何停止在Ionic 3中离开当前页面?
根据Ionic 3文件,这应该是可行的:Cordova 如何停止在Ionic 3中离开当前页面?,cordova,ionic-framework,ionic3,Cordova,Ionic Framework,Ionic3,根据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'] });
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;
}
但事实并非如此。警报出现,但页面仍会更改。然而,在这里它说,返回真或返回假将告诉离子进行页面更改或停止它。
我做错了什么?你需要使用导航守卫。
检查导航防护部分
生命周期挂钩是ionViewCanLeave而不是ionViewWillLeave
你需要使用导航守卫。
检查导航防护部分
生命周期挂钩是ionViewCanLeave而不是ionViewWillLeave
我也试过了。它什么都不做,甚至不会被触发。可能是因为我使用了一个标签集来导航?这很奇怪。。你能打印cantlave值吗?是的,它是一个正确的布尔值。在我的代码中,它实际上有点复杂,它从一个服务中获取它的值,所以我没有在示例中包括它。但它工作得很好,这不是问题所在。它的价值来自于服务。。在这种情况下,这里没有足够的信息。。。可能是因为它是异步的?您必须提供一个否,它不是异步的。这是一个简单的单例服务,在整个应用程序中存储值。这是一个简单的布尔值。但是即使我用一个变量替换它,就像在这个例子中一样,它也不起作用。我也试过了。它什么都不做,甚至不会被触发。可能是因为我使用了一个标签集来导航?这很奇怪。。你能打印cantlave值吗?是的,它是一个正确的布尔值。在我的代码中,它实际上有点复杂,它从一个服务中获取它的值,所以我没有在示例中包括它。但它工作得很好,这不是问题所在。它的价值来自于服务。。在这种情况下,这里没有足够的信息。。。可能是因为它是异步的?您必须提供一个否,它不是异步的。这是一个简单的单例服务,在整个应用程序中存储值。这是一个简单的布尔值。但是,即使我用一个变量替换它,就像在示例中一样,它也不起作用。
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;
}