我正在使用我的應用程序的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