我的问题是我想监视对使用ng-repeat创建的过滤数组的更改,因为我已经知道ng-repeat创建了自己的范围,因此我要引用父作用域,并同时使用$ scope观察数组$ watch实际上有效(它可以准确地检测到阵列的变化),我收到多个控制台日志错误,提示:angular.js:12520 RangeError:超出了最大调用堆栈大小。 有人对我能解决该问题有何投入?
HTML:
<div class="module-card" ng-repeat="module in ($parent.filteredModules = (modules | released : true | moduleFilter : allFilters | unique: 'name' | orderBy : sortFunc : orderedAsc | limitTo : limitResults)) track by $index">
JS:
$scope.$watch('filteredModules', function(newVal, oldVal){
console.log(newVal, oldVal);
}, true)
通过改用$ scope。$ watchCollection解决了该问题。如果有人碰到相同的问题。