2016-11-21 7 views
2

私は2列のリストを持っていますが、左にインデックスを表示し、右に奇数を表示します。角度2 ng偶数/奇数項目の場合

現在、私はすべての列の全リストを繰り返し、ngIf = "odd"またはevenでフィルタリングしています。

ngForだけを行い、偶数または奇数のインデックスを見ることはできますか?

パフォーマンスが大幅に向上しますか?私は、DOM要素の半分が削除されたときにどれくらいの負担があるのか​​分かりません。

リストは頻繁に変更されませんが、変更すると完全に変更されます。

+1

ようにそれを使用してください、あなたが使用しているすべてのコードを表示することができます。ほとんどの場合、反復配列を再マップする必要があります。 – estus

答えて

3

あなただけ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> 
+0

いくつかのエラーは '':'が予想されます。 'と'名前 'アイテム'を見つけることができません。 ' – Toolkit

+0

ヒントをありがとう。私は自分の答えを更新しました。今はうまくいくと思う。引き続きエラーが発生した場合は、詳細情報(エラーの位置と正確なエラーメッセージ)を提供してください。 –

+0

パイプの本当に素晴らしい例をありがとう! 'return value.filter((item、idx)=> {return filter === 'even'?idx%2 === 1:idx)このようにして、 %2 === 0;}); ' –

関連する問題