我有一个选择下拉列表
<selectize config="mySelectizeConfig" options="getAvailableObjects(id)""></selectize>
当我返回数组时,在我的控制器上工作正常
$scope.getAvailableObjects=function(id) {
return $scope.available_objects[id]
}
但是当我试图过滤数组时
$scope.getAvailableObjects=function(id) {
var result = [];
result = $scope.available_objects[id].filter(function(object) {
return object.is_active;
});
return result;
}
给我一个'错误:达到10 $ digest()迭代' 我该如何排除故障?
当我尝试在视图上过滤数组时,我遇到了同样的错误。
options="available_objects[id] | filter: {'is_active':true}"
答案 0 :(得分:0)
这是因为,Array.prototype.filter
方法以及| filter : {'is_active':true}
将始终返回 new 数组,因此 $ digest()迭代已达到,甚至虽然返回数组看起来相同。您可以通过缓存修复它们:
var cache = {};
$scope.getAvailableObjects = function(id) {
return cache[id] = cache[id] || $scope.available_objects[id].filter(function(object) {
return object.is_active;
});
}
如果$scope.available_objects
将被更改,您可以重置cache = {}
;