我正在尝试谷歌的各种解决方案,但所有这些解决方案似乎都适用于Ionic 1和其他版本的Ionic和Angular。
HTML
<button class="edit" (click)="goBackToEnhancementPage();">Edit</button>
点击按钮,我想转到历史记录中的上一个状态
打字稿
这是当前状态
export class BookingConfirmationPage {
//Some properties
constructor(public navCtrl: NavController, public navParams: NavParams ) {
//Some codes
}
goBackToEnhancementPage(){
canGoBack();
}
}
以前的状态
export class BookingEnhancementPage {
//Some code
constructor(public navCtrl: NavController, public navParams: NavParams, public loadingCtrl: LoadingController, private formBuilder: FormBuilder ) {
//This is previous state
}
}
这不起作用。请告诉我我做错了什么?
答案 0 :(得分:5)
我猜你的问题是你试图使用navController回到之前的状态,又称&#34;返回&#34;功能
离子导航的工作方式就像一个堆栈,新的页面将通过&#34; push&#34;推送到堆栈的顶部。 via页面将通过&#34; pop&#34;
从堆栈顶部删除要回到以前的状态,您可以使用:
this.navCtrl.pop();
但在此之前请确保您已将上一页推送到navController,或者您已将setRoot推送到&#34; BookingConfirmationPage&#34;页。
您可能希望阅读:https://ionicframework.com/docs/v2/api/navigation/NavController/
如果您希望使用用户之前输入的数据填充BookingEnhancementPage中的先前详细信息,则可能需要使用localstorage和onPageBeforeEnter / onPageWillEnter的组合来填充字段。