Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何替换爱奥尼亚的当前页面?_Angular_Typescript_Ionic Framework_Ionic3 - Fatal编程技术网

Angular 如何替换爱奥尼亚的当前页面?

Angular 如何替换爱奥尼亚的当前页面?,angular,typescript,ionic-framework,ionic3,Angular,Typescript,Ionic Framework,Ionic3,我有这个流程: 联系人页面->navController.push(新建联系人)->navController.push(已创建联系人) 如何使ContactCreated页面上的“后退”按钮将用户返回到根“联系人”页面而不是NewContact页面?因此,我想替换导航堆栈中的一个页面 我使用的是爱奥尼亚3。您可以按如下所示操作。这是你的电话号码 从“离子角度”导入{Navbar}; @组成部分({ 选择器:“您的页面”, 模板:` 你的页面 ... ` }) 导出类YourPage{ @Vie

我有这个流程:

联系人页面->navController.push(新建联系人)->navController.push(已创建联系人)

如何使ContactCreated页面上的“后退”按钮将用户返回到根“联系人”页面而不是NewContact页面?因此,我想替换导航堆栈中的一个页面


我使用的是爱奥尼亚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);
});