我有一個包含2列的列表,我希望左邊顯示偶數和奇數。Angular 2 ngFor對偶數/奇數的項目
目前我遍歷每列的整個列表,並用ngIf =「odd」或甚至過濾。
我可以讓ngFor只能做和觀看偶數或奇數指數嗎?
會大大提高性能嗎?我不知道當一半的DOM元素被納入時是多少負擔。
該列表不會頻繁更改,但當它發生更改時,它會完全更改。
我有一個包含2列的列表,我希望左邊顯示偶數和奇數。Angular 2 ngFor對偶數/奇數的項目
目前我遍歷每列的整個列表,並用ngIf =「odd」或甚至過濾。
我可以讓ngFor只能做和觀看偶數或奇數指數嗎?
會大大提高性能嗎?我不知道當一半的DOM元素被納入時是多少負擔。
該列表不會頻繁更改,但當它發生更改時,它會完全更改。
您可以創建一個管道,只有返回odd
或even
項目
@Pipe({ name: 'evenodd' })
export class EvenOddPipe implements PipeTransform {
transform(value:any[], filter:string) {
if(!value || (filter !== 'even' && filter !== 'odd')) {
return value;
}
return value.filter((item, idx) => filter === 'even' ? idx % 2 === 1 : idx % 2 === 0);
}
}
,並使用它像
<div *ngFor="let item of items | evenodd:'even'"></div>
<div *ngFor="let item of items | evenodd:'odd'"></div>
幾個錯誤'':'預計。 '和'找不到名字'item'.' – Toolkit
感謝您的提示。我更新了我的答案。我認爲它現在應該工作。如果仍然出現錯誤,請提供更多詳細信息(錯誤的位置和確切的錯誤信息)。 –
謝謝你的管道真的很好的例子!我不得不按照以下步驟改變它,讓它在Angular 4中運行:'return value.filter((item,idx)=> {return filter ==='even'?idx%2 === 1:idx %2 === 0;});' –
快,讓所有您所使用的代碼。很可能你需要重新映射迭代數組。 – estus