如何将参数传递给Ionic中的模态?

时间:2017-07-03 09:46:49

标签: typescript ionic-framework parameters

我一直试图通过模态传递一个参数,我正在尝试为每个“项目”制作一个“个人页面”。

Foreach项目: ...

 <button (click)="viewIndividualTour(item)" ion-fab class="fab-map">
        <ion-icon name='information-circle'></ion-icon>
 </button>

我在typescript中创建了viewIndividualTour函数,它是这样的:

viewIndividualTour(item) {
    let viewTourModal = this.modalCtrl.create(ViewTour, item});
    viewTourModal.present();
  }

所以我试图将“item”传递给ViewTour页面。为了能够在我的ViewTour模板html页面中使用“item”,我需要先在.ts中定义它。我怎么能这样做?

一些背景信息:列出所有项目时:  <ion-item-sliding *ngFor="let item of items; let idx = index;"> ... 然后我可以使用item.cartegory

在该页面的.ts中,我将项目定义为:public items: any;

我通过运行此函数填充了所有数据的“项目”:

refreshTours() {
    this.db.getDocumentClient().query({
      ...linesOfCode...
    }).promise().then((data) => {
      this.items = data.Items;
   ...linesofCode...
  }

所以我定义了项目。在我的新案例中,我想为一个项目创建一个单独的模态,而不是用ngFor(foreach)列出它们。

1 个答案:

答案 0 :(得分:0)

在主页面中,将所有params作为第二个参数的对象传递给create()方法,就像您已经做过的那样:

viewIndividualTour( item ) {
  let viewTourModal = this.modalCtrl.create( ViewTour,{ item: item} );
  viewTourModal.present();
}

在模态(ViewTour.ts)的打字稿文件中,您可以使用NavParams访问给定对象:

item : any;

constructor( navParams: NavParams ) {
   this.item = navParams.get( 'item' );
}

使用此项,您可以在模板中使用项目成员变量。