あなたは、このためのカスタムOrderBy
パイプを構築することができます。 [並べ替えパイプ以下key
あなたがアルファベット順または値ベース(:ASC順):と、それに渡されることにより、オブジェクト配列をソートします。例えば
@Pipe({name: 'OrderBy'})
export class OrderByPipe implements PipeTranform {
transform(input: any, key: string) {
if (!input) return [];
return input.sort(function(itemA, itemB) {
if (itemA[key] > itemB[key]) {
return 1;
} else (itemA[key] < itemB[key]) {
return -1;
} else {
return 0;
}
});
}
}
とあなたのテンプレートには以下のようになります:
<md-option *ngFor="let user of users | OrderBy: 'id'" [value]="user.id">`
鍛造しないでくださいあなたのdeclarations
にを追加してNgModule
を追加してください。
UPD:ので、ここで私はあなたができることを意味し、純粋なパイプを提供しています、パフォーマンス上の問題を引き起こす可能性が不純なパイプで@DeborahKと角付録No FilterPipe or OrderByPipe(最後の部分)、OrderBy
によって答えとして
入力配列に新しいインスタンスを与えるOrderBy Pipeをいつ起動するか、またはPipeに変換されたパラメータを変更するかを決定します。
Plunker Demo。
OrderByパイプを構築する際にパフォーマンス上の問題が発生する可能性があります。ドキュメント:Angularチームと多くの経験豊富なAngular開発者は、フィルタリングと並べ替えロジックをコンポーネント自体に移すことを強く推奨します...これらのパフォーマンスとMinificationの考慮事項があなたには当てはまらない場合は、いつでも独自のパイプを作成できますFlyingHeroesPipeを参照)、コミュニティ内で見つけることができます.'付録を参照してください。https://angular.io/docs/ts/latest/guide/pipes.html – DeborahK
@DeborahKパフォーマンスに関する問題を知っています。なぜ私は純粋なパイプを提供しているのですか?そして、OPはパイプを発射する時期を決めることができます。それでも問題がある場合は、私に知らせて喜んで学びましょう。 – Pengyy