检查页面是否已创建为页面或模态页面

时间:2017-11-24 05:58:02

标签: angular typescript ionic-framework ionic3

我有一个页面(UpgradePage),我需要使用push/setRootside menu以及modal page加载同一页面。

问:关于此方法upgradeLater(),我需要决定是将其转到另一个页面HomePage还是仅close作为popup使用this.viewCtrl.dismiss();。你能告诉我怎么做吗?

注意:换句话说,如何查找page是否创建为modal

upgrade.ts

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';

@IonicPage()
@Component({
  selector: 'page-upgrade',
  templateUrl: 'upgrade.html',
})
export class UpgradePage {

  constructor(private navCtrl: NavController, private navParams: NavParams) {
  }

  upgradeLater() {
    if("comming from side menu"){
     this.navCtrl.setRoot('HomePage');
   } else{
     this.viewCtrl.dismiss(); //if loadded this page as modal page
   }
  }
}

1 个答案:

答案 0 :(得分:1)

当您将参数创建为模态页面或常规页面时,可以将参数传递给页面。

对于模态

let profileModal = this.modalCtrl.create(UpgradePage, { type: 'modal'});

常规页面:

this.navCtrl.push(UpgradePage, {type: 'page'});

然后在UpgradePage

type;
constructor(private navCtrl: NavController, private navParams: NavParams)
{
  this.type= navParams.get('type');
}

upgradeLater() {
  if(this.type=='page'){
    this.navCtrl.setRoot('HomePage');
  } else{
    this.viewCtrl.dismiss(); //if loadded this page as modal page
  }
}

修改: 实际上在navCtrl中,模态和常规页面是相同的,如果您使用push(),则可以使用pop()关闭它们。 更多信息here