AngularJS - 如何在ng-repeat中对类数组对象的值进行排序

时间:2013-05-29 21:22:35

标签: javascript sorting angularjs angularjs-ng-repeat

我有一个看起来像这样的对象:

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

它在我的ng-repeat中通过键(有意义)命令它。这导致标签不符合字母顺序(“蔓越莓”是第一个)。如何使它按顺序(按字母顺序)命令我的转发器?

我可以按照我想要的ng-repeat顺序提供它,但它按键排序。如果我能够这样做,那么这也可以。

1 个答案:

答案 0 :(得分:28)

要在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>