我一直试图通过模态传递一个参数,我正在尝试为每个“项目”制作一个“个人页面”。
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)列出它们。
答案 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' );
}
使用此项,您可以在模板中使用项目成员变量。