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 回答