我正在使用我的应用程序的restangular。说我有这个在我看来:在ng-show中的角度函数,承诺会出错
<div ng-repeat="resource in resources">
<i ng-show="isCheckedLabel(resource)" class="fa fa-checked"> Checked </i>
</div>
,并在我的控制,我有我的API调用服务
$scope.getResources = function(){
$scope.getResourcePromise = ResourceService.getResourceById($stateParams.id).then(function(response){
$scope.resources = response;
});
};
,这里是我的检查功能,这将返回true或false
$scope.isCheckedLabel = function(resource){
$scope.getResourcePromise.then(function(){
for(var group in resource.groups){
for(i = 0; i < resource.groups.length; i++){
if (resource.groups[group].isChecked === true){
return true;
} else {
return false;
}
}
}
});
};
我在做什么:通过每个组循环,如果有一个或多个'检查'我希望我的标签在前端显示检查。当其中一人被选中,假时没有被检查
我的函数返回true,但它不是在视图中显示我的元素,因为我得到这个错误在控制台:
Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: []
和它只是一遍又一遍地开火。这里发生了什么?
谢谢@DeepakN这个解决方案工作...我以为我已经试过这个,并得到一个未定义的错误,但我忘了我的$ scope.isCheckedLabel()在我的控制器的底部,并执行之前承诺解决。 – Garuuk 2014-09-18 18:01:26
你的循环对我来说似乎仍然是错误的,它只会检查第一个值,因为你在第一次迭代中必须有一个'return'语句 – 2017-07-21 02:04:24