[英]How to splice/remove an item from a list that was reversed
所以我以相反的順序顯示一個數組
*ngFor="let item of items.reverse(); let i = index"
我遇到的問題是,當我嘗試刪除這樣的項目時,
deleteItem(row) {
this.items.splice(row,1);
}
示例... array_items= [item1,item2,item3,item4]; 所以當它顯示時,它會首先顯示 array_items[3] 但如果我嘗試刪除它,它會刪除 array_items[0] 。 那有意義嗎? 它不會刪除正確的。 我怎樣才能做到這一點? 在此先感謝您的幫助。
由於列表是顛倒的,索引不會是row
而是this.items.length - row
,所以我會嘗試:
deleteItem(row) {
this.items.splice(this.items.length - (row + 1), 1);
}
嗨,當您反轉 ngfor 中的項目時,該值不會僅在視圖中更改,並且您的組件類中的項目值已反轉。 我認為你應該使用服裝反向管道:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({ name: 'reverse' })
export class ReversePipe implements PipeTransform {
transform(value) {
return value.slice().reverse();
}
}
所以這些項目只是在視圖中顛倒了。
*ngFor="let item of items | reverse let i = item.length + index - 1;"
您應該將開始作為數組的長度減去 currentIndex 加 1。
deleteItem(row){
this.item.splice(this.item.length - (row +1), 1);
}
這將從數組中刪除原始項目。
我建議:
deleteItem(row){
this.item.splice(this.item.length - (row +1), 1);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.