19

次のようなオブジェクトがあります。

{
    "03" : "Apple",
    "02" : "Banana",
    "01" : "Cranberry"
}

そして、それは私のng-repeatのキー(理にかなっています)で注文します。これにより、ラベルがアルファベット順ではなくなります (「クランベリー」が最初になります)。リピーターを値 (アルファベット順) で並べ替えるにはどうすればよいですか?

ng-repeat に必要な順序で提供できますが、キーでソートされます。そうならないようにすることができれば、それもうまくいくでしょう。

4

1 に答える 1

28

ngRepeat で配列を並べ替えるには、orderBy フィルターを使用できますが、配列でのみ機能するため、ngRepeat で配列を使用する必要があります。

コントローラーでは次のようになります。

$scope.myData = [
    {
        key:    "01",
        value:  "Cranberry"
    },
    {
        key:    "02",
        value:  "Banana"
    },
    {
        key:    "03",
        value:  "Apple"
    }
];

そしてhtmlで:

<div class="item" ng-repeat="item in myData|orderBy:'value'">{{item.value}}</div>
于 2013-05-29T21:37:20.197 に答える