popTo不适用于离子

时间:2017-07-12 06:51:19

标签: angular ionic-framework ionic2 ionic3

我正在使用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)。

2 个答案:

答案 0 :(得分:0)

我认为您需要重新设计应用程序的登录流程。以下是我的建议,一旦用户登录,而不是推送ShippingPage,将其设置为根页面。通过这样做,您将无法在登录后看到发货页面上的后退按钮。

e.g。

代替nav.push(ShippingPage);执行nav.setRoot(ShippingPage);

popToRoot函数而言,它的工作方式由文档定义,即它会导航回堆栈的根目录,即你的案例中的LoginPage。

答案 1 :(得分:0)

在Ionic popto方法中,该参数采用页面的索引而不是您导入的名称,因此只需添加类似

nav.popTo( this.navCtrl.getByIndex(1))

试试这个;