我的模板中有这个:
<div class="ui-g" *ngFor="let item of orderTrackings, let i = index;" (click)="selectItem(item,i)" [ngClass]="{'active':selectedItem == i}">
<destinations #cpdc class="child" *ngIf="orderTrackings.length" [item]="item" [trackings]="orderTrackings" [dfp]="dataFromPopup" [groupDestinations]="groupDestinations"></destinations>
</div>
问题是在orderTrackings数组中我可以有多个完全相同的对象。如何在单击时仅选择一个对象,如果在新数组中不存在,则在删除它时添加它。这是我的意思:
selectItem(item,i) {
if(this.selectedItem.indexOf(item,i) === -1){
this.selectedItem.push(item);
}else{
this.selectedItem.splice(this.selectedItem.indexOf(item,i), 1);
}
}
有什么建议吗?
答案 0 :(得分:0)
我认为该项可能有一些id,你可以遍历数组并查找是否存在具有id的特定项。
selectItem(item) {
const itemPresent = this.selectedItem.find(t => t.id === item.id)
if(itemPresent){
this.selectedItem = this.selectedItem.filter(t => t.id !== item.id)
}else{
this.selectedItem.push(item);
}
}