ngRepeatと組み合わせて使用できるorderByディレクティブでいくつかの数字列を逆順に並べています。負の数の文字列をAngularJSの 'orderBy'で並べ替える
<div ng-repeat="item in standings| orderBy:['-points', '-gd', 'team_name']">
<p>{{item.gd}}
</div>
だから、 'ポイント'、そして 'GD'(得失点差)、そして 'TEAM_NAME'(アルファベット順)(優先度の高い順に)発注されます。
gd
の値は降順で正しく並べ替えられます。私が持っている問題は負の数値です。この例では、数値は文字列として返され、orderBy関数はが"-1"
未満であると解釈しますが、その逆です。
ng-repeatを数値に解析して、特にマイナスの数字による問題を解決するにはどうすればよいですか?
フィルタを作成すると考えました(例:{{item.gd | *filterHere* }}
)が、元の値を整数として取る必要がある最初のng-repeatディレクティブでは表示されません。
ご協力いただければ幸いです。
UPDATE:ビューで
app.filter('stringToInteger', function() {
return function(input) {
angular.forEach(input, function(value) {
parseInt(value.gd);
})
};
return input;
});
:
私はこのフィルタを試してみましたが、私は私のNGリピートでそれを呼び出したとき、それは何も返さない
<p ng-repeat="item in standings | orderBy: '-gd' | stringToInteger">GD = {{item.gd}}</p>
?これをparseInt()で簡単に行うことができます:http://www.w3schools.com/jsref/jsref_parseint.asp – Mistalis
ありがとうございました。私はカスタムフィルタでこれを使ってみましたが、うまくいきませんでした。私の更新を見てください... – Paulos3000