如何從ngFor
中刪除元素?我有這ngFor
項目有Id
以及我通過updateOrder()
功能,所以它會知道我點擊哪個項目。Angular2如何刪除ng中的元素
getOrdersFromOrigin() {
this.sharedService.getOriginSite()
.subscribe(data => {
this.isLoading = false;
this.orderPreparing = data.Results
})
}
<div class="preparing" *ngFor="let prepare of orderPreparing">
<p> {{ prepare.Item }} </p>
<button class="btn btn-primary" (click)="updateOrder(prepare.Id)">It's Ready</button>
</div>
在我updateOrder
我沒有任何東西在我的updateOrder功能我不知道如何刪除一個元素相對於Id
我通過在(click)=""
事件,它給我Id
就好了。
這個updateOrder()
正在工作,因爲它將它從UI中移除,但想法一旦刪除,我想將它添加到集合中。
updateOrder(id) {
for(let i = 0; i < this.orderPreparing.length; i++) {
if (this.orderPreparing[i].Id === id) {
this.orderPreparing.splice(i, 1);
this.addToCollection.push(this.orderPreparing[i]);
console.log(this.addToCollection);
console.log('Changed Status to AwaitingToPick');
break;
}
}
}
我添加了一個新的private addToCollection = []
被移除item
推到一個數組,所以我可以在集合中添加它。然而,上面的代碼只需要最後index
當我添加另一個陣列它打破陣列成爲[Object{}, undefined]
將會有一個,我已經更新了原來的帖子,我已經添加了獲取'ngFor'數據的位置。 – MrNew
那麼atm只是將其從用戶界面中刪除,因爲一旦我點擊該按鈕,它將從Prepare面板中刪除,然後將其移動到Pickup。 – MrNew
對不起@MrNew,但我現在不明白你在問什麼。 如果您想從orderPreparing中刪除該項目,您已經有一個答案,但是當您刷新該頁面時,數據將被刷新,並且它會再次向您顯示該項目,因爲它不會在後端被刪除。 –