在 ng-repeat 中执行函数会出错
Executing function in ng-repeat give error
我必须 运行 像这样在 ng-repeat 期间执行一个函数
<tr ng-repeat="x in listaService track by $index">
<td>{{x.label}}</td>
<td><span ng-show="showNoRole(x.label)" id="bannerRole">Nessun Ruolo</span> </td>
</tr>
并且在 angular 控制器中我有这个功能来控制 ng-show:
$scope.showNoRole = function(label) {
RicercaRuoloService.load(label).then(function(data) {
if (data != "\"null\"") {
return false;
} else {
return true;
}
}, function(error) {
$scope.ErroreConnessione = true;
})
}
函数 RicercaRuoloService
returns 数组或 "\"null\""
如果数组为空。
问题是当我转到 ng-repeat 所在的页面时,控制台开始循环打印此错误:
angular.min.js:107 Error: [$rootScope:infdig] http://errors.angularjs.org/1.4.8/$rootScope/infdig?p0=10&p1=%5B%5D
at angular.min.js:6
at r.$digest (angular.min.js:131)
at r.$apply (angular.min.js:134)
at g (angular.min.js:87)
at T (angular.min.js:92)
at XMLHttpRequest.w.onload (angular.min.js:93)
和 cpu 使用率从 20% 变为 100%,直到我关闭页面。
我该如何解决这个问题?
最好的问候
编辑:
这是来自 listaService 的数组:
[{"_id":"test","label":"test","descrizione":"descrizione test","url":"http://www.virgilio.it","tipoProfilo":"NGPFNL","periodoValidazione":370,"direct":false,"preValid":false,"deleted":false},{"_id":"test2","label":"test2","descrizione":"descr test2","url":"http://www.google.com","tipoProfilo":"NGPFNL","periodoValidazione":123,"direct":false,"preValid":false,"deleted":false}]
编辑2:
RicercaRuoloService 只是一个 Angular 服务,它调用休息服务并从数据库中获取数据。其余服务效果很好,因为我也将它用于其他页面,但从未作为 ng-repeat 中的函数使用。
尝试一次性绑定。现在你的函数在 angularJS.
的每个摘要周期中执行
ng-show="::showNoRole(x.label)"
也试试
$scope.showNoRole = function(label) {
var result;
RicercaRuoloService.load(label).then(function(data) {
if (data != "\"null\"") {
result = false;
} else {
result = true;
}
}, function(error) {
result = false;
$scope.ErroreConnessione = true;
})
return result;
}
我必须 运行 像这样在 ng-repeat 期间执行一个函数
<tr ng-repeat="x in listaService track by $index">
<td>{{x.label}}</td>
<td><span ng-show="showNoRole(x.label)" id="bannerRole">Nessun Ruolo</span> </td>
</tr>
并且在 angular 控制器中我有这个功能来控制 ng-show:
$scope.showNoRole = function(label) {
RicercaRuoloService.load(label).then(function(data) {
if (data != "\"null\"") {
return false;
} else {
return true;
}
}, function(error) {
$scope.ErroreConnessione = true;
})
}
函数 RicercaRuoloService
returns 数组或 "\"null\""
如果数组为空。
问题是当我转到 ng-repeat 所在的页面时,控制台开始循环打印此错误:
angular.min.js:107 Error: [$rootScope:infdig] http://errors.angularjs.org/1.4.8/$rootScope/infdig?p0=10&p1=%5B%5D
at angular.min.js:6
at r.$digest (angular.min.js:131)
at r.$apply (angular.min.js:134)
at g (angular.min.js:87)
at T (angular.min.js:92)
at XMLHttpRequest.w.onload (angular.min.js:93)
和 cpu 使用率从 20% 变为 100%,直到我关闭页面。 我该如何解决这个问题? 最好的问候
编辑: 这是来自 listaService 的数组:
[{"_id":"test","label":"test","descrizione":"descrizione test","url":"http://www.virgilio.it","tipoProfilo":"NGPFNL","periodoValidazione":370,"direct":false,"preValid":false,"deleted":false},{"_id":"test2","label":"test2","descrizione":"descr test2","url":"http://www.google.com","tipoProfilo":"NGPFNL","periodoValidazione":123,"direct":false,"preValid":false,"deleted":false}]
编辑2: RicercaRuoloService 只是一个 Angular 服务,它调用休息服务并从数据库中获取数据。其余服务效果很好,因为我也将它用于其他页面,但从未作为 ng-repeat 中的函数使用。
尝试一次性绑定。现在你的函数在 angularJS.
的每个摘要周期中执行ng-show="::showNoRole(x.label)"
也试试
$scope.showNoRole = function(label) {
var result;
RicercaRuoloService.load(label).then(function(data) {
if (data != "\"null\"") {
result = false;
} else {
result = true;
}
}, function(error) {
result = false;
$scope.ErroreConnessione = true;
})
return result;
}