web-dev-qa-db-ja.com

AngularJS-ng-repeatの配列のようなオブジェクトの値によってorderByする方法

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

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

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

Ng-repeatにしたい順番で供給できますが、キーでソートします。私がそれを作ることができればnotがそれをするなら、それもうまくいくでしょう。

19
Kevin Beal

NgRepeatで配列を並べ替えるには orderBy filter を使用できますが、配列でのみ機能するため、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>
28
ardentum-c