Javascript 过滤对象数组时出现无限摘要错误

Javascript 过滤对象数组时出现无限摘要错误,javascript,angularjs,angular-filters,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() { r

我有一个对象数组,如下所示:

$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">


但是我得到了一份工作。为什么会出现这种情况?

我认为您不需要自定义过滤器,请尝试使用以下方法:

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


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

试试这个如果我这样做,我必须将arr作为参数传递给“ownerFirst”过滤器。无论如何,让我试试……你在每次迭代中对数组进行排序。尝试在ng重复之前对数组进行排序。我可以这样做,但我想问的是,在这种情况下为什么会出现错误?谢谢。“-”是否正好在val之前用于反向排序?