Ionic2 - Show/Hide 基于控制器显示方式的按钮

Ionic2 - Show/Hide button based on how the controller was shown

我有一个页面 Page2,有时需要使用 modal() 打开,有时需要使用 push()

在正常情况下,如果使用推送方法打开控制器,它将显示一个 "Back" 按钮。但是,在使用 modal() 方法打开页面的另一种情况下,我需要向 Page2 添加一个关闭按钮,以便用户可以随时关闭该控制器。

问题

如果我向 Page2 添加一个关闭按钮,那么即使控制器是使用 push() 方法打开的,该按钮也会显示,在这种情况下,它会显示一个后退按钮和一个关闭按钮。

我想要的

我想添加一个条件,如果控制器是使用 push() 打开的,那么它应该隐藏那个关闭按钮

流量:

第 1 页 >(推送到)> 第 2 页(隐藏关闭按钮)

第 3 页 >(模态到)> 第 2 页(显示关闭按钮)

知道如何实现吗?

您可以向 Page2 构造函数发送一个参数,如下所示:

presentPage2AsModal() {
   let page2Modal = this.modalCtrl.create(Page2, { showCloseBtn: true });
   page2Modal.present();
 }

如果你用push方法打开它:

openPage2AsPage() {
   this.nav.push(Page2, { showCloseBtn: false });
 }

然后在Page2构造函数中:

constructor(..., private navParams: NavParams) {
    // Get the param
    this.showCloseBtn = navParams.get('showCloseBtn');
}

在视图中:

<button *ngIf="showCloseBtn" (click)="yourMethod">Close</button>