选择错误:10 $ digest()迭代



我有一个selectize下拉

<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}"

这是因为,Array.prototype.filter方法以及| filter : {'is_active':true}将始终返回 new array,因此 $> $ 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 = {};

最新更新