2017-03-09 3 views
1

角度2のパイプを正しく作成するには、htmlで正しく使用しますが、使用するたびにarray.sortはプロパティなどとして読み込まれます。ここ この角2 - パイプソート - 正しい構文

<ul *ngIf="type!='' && amount==0" class="leaderboard"> 
    <li *ngFor="let player of players | sort | slice:0; let i=index"> 
     <span class="badge">{{player.id}}</span>{{player.name}} 
     <span *ngIf="type=='ratio'" class="points">{{player[type].toFixed(2)}} %</span> 
     <span *ngIf="type!='ratio'" class="points">{{player[type]}}</span> 
    </li> 
</ul> 

ソート順のための私のHTMLコードで重要な権利ではありません。エラーが

import { Pipe, PipeTransform } from "@angular/core"; 

import { Player } from './player'; 

@Pipe({ 
    name: "arraysorting", 
    pure:false, 
}) 
export class LeaderboardSortPipe implements PipeTransform { 
    transform(array: Array<Player>, args: string): Array<Player> { 
    array.sort((a: Player, b: Player) => { 
     if (a[args] < b[args]) { 
     return -1; 
     } else if (a[args] > b[args]) { 
     return 1; 
     } else { 
     return 0; 
     } 
    }); 
    return array; 
    } 
} 

編集が未定義のプロパティ「ソート」を読み取ることができませんので、ここで私のパイプのコードです今の問題は、それがどの方向にも全くソートイマイチということ、である

答えて

1

だけnullが値として渡されたときにパイプが投げていないことを確認

transform(array: Array<Player>, args: string): Array<Player> { 
    if(!array) { 
     return null; 
    } 
    array.sort((a: Player, b: Player) => { 
+0

もちろんです。それ以外の場合は、そのエラーは発生しません。 –

+0

質問を編集してコードを追加してください。コメントのコードは読めません。どのようにソートしておきたいですか? –