我正在使用ionic3。
我开发电子商务应用程序。
如果用户已登录转到发货页面。
然后我点击导航栏后退按钮,转到登录页面。
但我需要如果用户已通过身份验证不会转到登录页面。
因为我指定了一个局部变量。
这是我的代码。
<ion-navbar>
<ion-title>Shipping Address</ion-title>
<ion-buttons end>
<button ion-button (click)="goback()" >
<ion-icon class="customIcon" name="arrow-back"></ion-icon>
</button>
</ion-buttons>
</ion-navbar>
goback()
{
console.log("HOBACK")
if(this.Page == 'Signin')
{
this.navCtrl.popToRoot('CartPage');
}
}
Page是一个查询参数值。我只是传递了nav.push()中的值。
我的问题
popToRoot 为什么不起作用?
它也转到上一页(Backhistory)。
答案 0 :(得分:0)
我认为您需要重新设计应用程序的登录流程。以下是我的建议,一旦用户登录,而不是推送ShippingPage,将其设置为根页面。通过这样做,您将无法在登录后看到发货页面上的后退按钮。
e.g。
代替nav.push(ShippingPage);
执行nav.setRoot(ShippingPage);
就popToRoot
函数而言,它的工作方式由文档定义,即它会导航回堆栈的根目录,即你的案例中的LoginPage。
答案 1 :(得分:0)
在Ionic popto方法中,该参数采用页面的索引而不是您导入的名称,因此只需添加类似
nav.popTo( this.navCtrl.getByIndex(1))
试试这个;