这是我创建的一个简单示例,用于复制我的问题。在我的控制器中,我有一群人:
$scope.people = [
{ name: 'fred', age: 20 },
{ name: 'bob', age: 22 },
{ name: 'jane', age: 24 },
{ name: 'mary', age: 22 },
{ name: 'ben', age: 24 },
{ name: 'sarah', age: 21 },
];
我定义了一个过滤器:
.filter('grouped', function () {
return function (input) {
return _.groupBy(input, 'age');
}
})
您可能会注意到我使用Lo-Dash来执行分组。
在我看来,我有一个列表定义:
<div class="list" ng-repeat="personGroup in people | grouped">
{{ $index }}
<div class="list" ng-repeat="person in personGroup">
{{ person.name }}
</div>
</div>
我得到了我之后的结果,但是我的开发者控制台中出现了一堆错误。
https://docs.angularjs.org/error/ $ rootScope / infdig?P0 = 10
我理解为什么我会收到错误。这在上面的链接中详细解释。我只是不知道实现我之后的结果的正确方法。
答案 0 :(得分:2)
在分组人员时创建新的Array对象时,我根本不会使用过滤器。最简单的解决方案是在控制器内进行分组:
...
$scope.groups = _.groupBy($scope.people, 'age');
...
您的ng-repeat
属性将如下所示:
ng-repeat="personGroup in groups"
答案 1 :(得分:0)
您使用的角度是什么版本?我没有收到任何错误: