角度错误:达到10$digest()迭代
Angular error: 10 $digest() iterations reached
我正在尝试做一个过滤器,它将根据确定的字段对我的收藏项目进行分组(如角度过滤器库中的groupBy过滤器)
app.filter('groupBySortedField', function() {
return function(collection, property) {
var result = {};
angular.forEach(collection, function(item) {
var prop = item[property];
if (!result[prop]) {
result[prop] = [];
}
result[prop].push(item);
});
return result;
};
});
它运行得很好,但我在控制台中遇到了很多错误:
未捕获错误:已达到[$rootScope:infdig]10$digest()迭代。
看看打开控制台的示例http://plnkr.co/edit/HFlB7VTMCe2GnM3SUirs?p=preview
如何修复?
我完全同意Daniel给出的答案。
为了更好地理解,我想在这里展示一个简单的解决方案,如果可以在任何绑定和观察程序激活之前进行排序。
// Code goes here
var app = angular.module('test', []);
app.controller('TestCtrl', ['$scope', function($scope) {
var events = [{
startDate: new Date('Tue Nov 24 2015 03:05:00'),
name: '111'
},
{
startDate: new Date('Tue Nov 24 2015 03:05:00'),
name: '222'
},
{
startDate: new Date('Tue Nov 24 2015 04:05:00'),
name: '333'
},
{
startDate: new Date('Tue Nov 24 2015 04:05:00'),
name: '444'
}
];
$scope.orderedEvents = getEvents(events,'startDate');
function getEvents (collection,property) {
var result = {};
angular.forEach(collection, function(item) {
var prop = item[property];
if (!result[prop]) {
result[prop] = [];
}
result[prop].push(item);
});
return result;
}
}]);
<!DOCTYPE html>
<html>
<head>
<script data-require="angular.js@*" data-semver="1.4.7" src="https://code.angularjs.org/1.4.7/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body ng-app="test" ng-controller="TestCtrl">
<ul ng-repeat="(startDate, eventsList) in orderedEvents">
<li>{{eventsList[0].startDate}}</li>
<li ng-repeat="event in eventsList">{{event.name}}</li>
</ul>
</body>
</html>
演示
相关文章:
- Angular-错误:达到10$digest()迭代.正在中止
- 角度达到 10 次 $digest() 迭代
- ng递归地包括整个index.html;达到“10$digest()迭代”;
- AngularJS 10 $digest() 迭代在列表显示时达到
- JavaScript 运行时错误:[$rootScope:infdig] 达到 10 次$digest() 迭代.中止!
- 为什么我达到了 $digest () 迭代?如何跟踪递归脚本的活动
- AngularJs:错误:用于配对项目的自定义筛选器引发错误:“达到 10 次 $digest() 迭代.流产!
- AngularJS:未捕获错误:已达到[$rootScope:infdig]10$digest()迭代
- 角面包屑”;达到10$digest()迭代.正在中止&”;
- 调用ng-erepeat内部的API函数,提示错误.达到10$digest()迭代.在angularjs中中止
- 角度错误:达到10$digest()迭代
- 在角度1.1.x中为ng重复写入的滤波器的$digest迭代错误
- 谷歌地图显示未捕获的错误:达到10次$digest()迭代.流产!角的应用
- 已完成10次$digest()迭代.流产!“角.复制,重复
- 为什么ng-include会导致$digest迭代到达
- 错误:[$rootScope:infdig] 10 $digest()迭代到达.流产
- Angular 10的$digest()迭代达到随机数
- AngularJS - 10次$digest()迭代完成.流产
- 试图返回要查看的对象数组,得到“达到10次$digest()迭代”
- Angular动态ng-src函数导致“达到10次$digest()迭代”;错误