我该如何从ngFor
中删除一个元素?我有一个项目的ngFor
,其中包含一个Id
,我将其传递给updateOrder()
函数,以便它知道我点击的是哪个项目。
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
函数中,我没有任何与传入的(click)=""
事件相关的内容,因为我不确定如何删除相对于该事件传递的Id
的元素。 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
,当我向数组中再添加另一个 index
时,它会破坏数组并变成[Object{}, undefined]
indexOf().splice()
。 - MrNewid/item
,我希望它们被添加到名为ReadyToPick
的集合中。请参见上面的编辑,或者我应该创建一个新问题? - MrNewthis.addToCollection.push(this.orderPreparing[i]);this.orderPreparing.splice(i, 1);
希望对您有帮助。谢谢 - Avnesh Shakya