2016-11-07 5 views
0

を使用して、私は下記の通りなどの配列を持っている:フィルタNGリピートオブジェクトのプロパティ

$scope.athletes= [ 
{ 
    name: 'name 01', 
    measurements: [ 
    { 
     type: 'date' 
    }, { 
     type: 'info', 
     value: 23, 
     rank: 1 
    }] 
}, 
{ 
    name: 'name 02', 
    measurements: [ 
    { 
     type: 'date' 
    }, { 
     type: 'info', 
     value: 13, 
     rank: 3 
    }] 
}, 
{ 
    name: 'name 03', 
    measurements: [ 
    { 
     type: 'date' 
    }, { 
     type: 'info', 
     value: 17, 
     rank: 2 
    }] 
}]; 

私はrankフィルタに基づいて結果を表示したいです。私はすでに何かを試しましたが、うまくいきません。私のコードは以下の通りである:

<tr ng-repeat="athlete in filteredEntries = (athletes | filter: measurements[1].rank)"> 

    <td> {{ athlete.name }} </td> 

    <td > {{ athlete.measurements[1].value }} </td> 

</tr> 

そしてouputをを示す:

Name  --- value 
=========================== 
    name 01 --- 23 
--------------------------- 
    name 02 --- 13 
--------------------------- 
    name 03 --- 17 

しかし、私は次のような出力をしたい:

Name  --- value 
=========================== 
    name 01 --- 23 
--------------------------- 
    name 03 --- 17 
--------------------------- 
    name 02 --- 13 
+0

)それは=を役に立てば幸い:https://docs.angularjs.org/api/ng/filter/orderBy#を使用してカスタムコンパレータ – GPicazo

答えて

0

あなたはjsfiddleの下にチェックし、[並べ替えを使用する必要があります。

https://jsfiddle.net/twizzlers/7peLbu2m/1/

<div ng-repeat="athlete in athletes | orderBy: 'measurements[1].rank' "> 
    <div> {{ athlete.name }} </div> 
    <div > {{ athlete.measurements[1].value }} </div> 
</div> 

はあなたがネストされたプロパティを比較するために、おそらくカスタムのコンパレータで、オーダーごとのディレクティブを使用したいと思うでしょう

+0

あなたは私のコメントをdownvoted場合は、少なくとも私は間違いをしたことを教えて... dont downvoteは盲目的に答えていない... –

関連する問題