Angular 如何替换爱奥尼亚的当前页面?
我有这个流程: 联系人页面->navController.push(新建联系人)->navController.push(已创建联系人) 如何使ContactCreated页面上的“后退”按钮将用户返回到根“联系人”页面而不是NewContact页面?因此,我想替换导航堆栈中的一个页面Angular 如何替换爱奥尼亚的当前页面?,angular,typescript,ionic-framework,ionic3,Angular,Typescript,Ionic Framework,Ionic3,我有这个流程: 联系人页面->navController.push(新建联系人)->navController.push(已创建联系人) 如何使ContactCreated页面上的“后退”按钮将用户返回到根“联系人”页面而不是NewContact页面?因此,我想替换导航堆栈中的一个页面 我使用的是爱奥尼亚3。您可以按如下所示操作。这是你的电话号码 从“离子角度”导入{Navbar}; @组成部分({ 选择器:“您的页面”, 模板:` 你的页面 ... ` }) 导出类YourPage{ @Vie
我使用的是爱奥尼亚3。您可以按如下所示操作。这是你的电话号码
从“离子角度”导入{Navbar};
@组成部分({
选择器:“您的页面”,
模板:`
你的页面
...
`
})
导出类YourPage{
@ViewChild(导航栏)导航栏:导航栏;
构造函数(专用navController:navController){}
ionViewDidLoad(){
this.navBar.backButtonClick=(e:UIEvent)=>{
this.navController.setRoot('Contacts');
}
}
}
只需使用poptroot()
而不是pop()
如果要替换导航堆栈中的最后一页,可以这样做:
navController.pop()
.then(() => navController.push(ContactCreated))
.catch(() => navController.push(ContactCreated));
立即执行
pop
,然后在禁用动画的情况下执行push
:
this.navCtrl.pop({animate: false});
this.navCtrl.push(ContactCreated, null, {animate: false});
通过这种方式,您可以将页面添加到堆栈顶部,然后从第二个位置删除实际页面,而无需调用任何其他页面输入事件:
self.navCtrl.push(NextPage, nextParams).then(()=>{
let index = self.viewCtrl.index;
self.navCtrl.remove(index);
});
很好的解决方案,但它将通过后台页面,调用ionViewWillEnter等。。在某些情况下,这是一个问题
this.navCtrl.pop({animate: false});
this.navCtrl.push(ContactCreated, null, {animate: false});
self.navCtrl.push(NextPage, nextParams).then(()=>{
let index = self.viewCtrl.index;
self.navCtrl.remove(index);
});