我有一个带有ng-options函数调用的select标记:
<select ng-model='selectedList'
ng-options='list.id as list.label
for list in listService.computeLists(resume)'
>
这将导致重复的无限摘要错误。
angular.js:14525错误:[$ rootScope:infdig]达到10个$ digest()迭代。流产!
有什么办法可以在ng-options
中调用此函数而不会出现该错误?我尝试过记忆,但无法正常工作。
答案 0 :(得分:0)
当应用程序的模型变得不稳定并且每个$digest
周期触发状态更改和随后的$digest
周期时,会发生此错误。 AngularJS可以检测到这种情况,并防止无限循环导致浏览器无响应。
一个常见的错误是绑定到一个函数,该函数每次调用都会生成一个新数组。例如:
<div ng-repeat="user in getUsers()">{{ user.name }}</div>
$scope.getUsers = function() {
return [ { name: 'Hank' }, { name: 'Francisco' } ];
};
解决方案是,如果元素未更改,则返回相同的数组对象。
var users = [ { name: 'Hank' }, { name: 'Francisco' } ];
$scope.getUsers = function() {
return users;
};
有关更多信息,请参见