NavController有ionViewCanEnter和ionViewCanLeave两个方法,类似于Angular2中的route guards机制。比如你想阻止用户离开一个视图。
export class MyClass{
constructor(
public navCtrl: NavController
){}
pushPage(){
this.navCtrl.push(DetailPage)
.catch(()=> console.log('should I stay or should I go now'))
}
ionViewCanLeave(): boolean{
// here we can either return true or false
// depending on if we want to leave this view
if(isValid(randomValue)){
return true;
} else {
return false;
}
}
}
如果你想阻止用户进入某个页面:
export class MyClass{
constructor(
public navCtrl: NavController
){}
pushPage(){
this.navCtrl.push(DetailPage)
.catch(()=> console.log('should I stay or should I go now'))
}
}
export class DetailPage(){
constructor(
public navCtrl: NavController
){}
ionViewCanEnter(): boolean{
// here we can either return true or false
// depending on if we want to leave this view
if(isValid(randomValue)){
return true;
} else {
return false;
}
}
}