【发布时间】:2020-10-18 17:25:32
【问题描述】:
我有一个澄清,基本上我将一个列表从父页面传递到离子模式。在模态中,我将遍历一个列表。我基本上是在点击 ion-item 时修改对象的属性。
下面是modal中的html代码。
<ion-card *ngFor="let item of items">
<ion-row>
<ion-col size="3">
<ion-img width="80" height="80" [src]="item.imagePath"></ion-img>
</ion-col>
<ion-col size="7" >
<ion-label class="item-name">item.name</ion-label>
<ion-label class="item-price">item.cost</ion-label>
<ion-label class="item-date">item.date</ion-label>
</ion-col>
<ion-col size="2">
<ion-icon class="select-icon" name="add-circle" (click)="updateObj(item)"></ion-icon>
</ion-col>
</ion-row>
</ion-card>
在modal.component.ts中
ngOnInit() {
this.items = this.navParams.get("items");
}
dismissModal(){
this.modalCtrl.dismiss();
}
updateObj(object){
if(object){
object.status = true
}
}
我正在使用 navParams 将列表从父页面获取到模式。当我单击 ion-item 时,我将调用 updateObj 方法,在该方法中我将对象的状态更新为 true。一切正常。 但是当我更新模态中的对象时,发送到模态的原始列表也会更新。
谁能解释为什么更新模式中的列表会更新原始列表。是否使用 navParams 作为列表的引用?
在 Parent.component.ts 中
async openSearchModal(){
const modal = await this.modalCtrl.create({
component: CouponSearchPage,
componentProps: { items: this.itemListData,
}
});
这就是我将列表从父屏幕传递给模式的方式。
【问题讨论】: