过滤对象数组时的无限摘要错误

时间:2015-11-20 08:58:09

标签: javascript angularjs angular-filters

我有一个对象数组如下:

$scope.arr = [
    {'val': true},
    {'val': false},
    {'val': false},
    {'val': true},
    {'val': false},
]

我正在使用ng-repeat过滤器,该过滤器根据键'val'对数组进行排序,并在其他对象之前将'val'设置为true。这是过滤器:

app.filter('ownerFirst', [function() {
    return function(list) {
        list.sort(function(a, b) {
            return a['val'] - b['val'];
        })
        return list;
    }
}])

模板:

<div ng-repeat="obj in arr | ownerFirst">

但我得到infinite digest error。为什么会这样?

1 个答案:

答案 0 :(得分:1)

我认为您不需要自定义过滤器,请尝试使用orderBy,如下所示:

<div ng-repeat="obj in arr | orderBy: '-val'">    

您需要将- - 符号放在val前面,因为您需要降序排序。