2016-05-12 4 views
2

私はアイテムの配列を持つコンポーネントを持っています。角2:降順のng:

ユーザーがボタンをクリックするたびに、新しい配列がこの配列に追加されます。この配列はngForループにこのように示されている

:今

<li *ngFor="let log of Logs" class="list-group-item" [innerHTML]="log"</li> 

を、新しいログがリストの一番下に表示されます。私がしようとしているのは、リストの一番上に新しいログを表示することです。

どのように角度2で行うことができますか?

+1

ngForの順序を変更することはできません。 Array.unshift(newLog)を使用して新しいログを配列に追加するのはなぜですか? –

+0

ありがとう@ Jean-PhilippeLeclerc、私はこの方法について知らなかった。 – TheUnreal

答えて

4

あなたは、このためのカスタムパイプを作成することができます。(私は元の配列を更新していない配列のコピーを作成することに注意してください)

@Pipe({ 
    name: 'reverse' 
}) 
export class ReversePipe { 
    transform(arr) { 
    var copy = arr.slice(); 
    return copy.reverse(); 
    } 
} 

をし、このようにそれを使用します。

<li *ngFor="let log of Logs | reverse" 
    class="list-group-item" [innerHTML]="log"</li> 

このパイプを使用するコンポーネントのpipes属性にこのパイプを追加することを忘れないでください。

+1

パイプは 'pipes'に追加され、' directives'に追加されませんか? –

+0

あなたはまさに正しいです!これを指摘してくれてありがとう。私は自分の答えを更新しました... –

+0

また、 'PipeTransform'をインポートし、' ReversePipeがPipeTransformを実装する 'と言う必要があります。 –