angularjs

angularjs - 为什么我得到RangeError:当监视父sco更改时,超出了最大调用堆栈大小

发布于 2020-04-08 09:53:17

我的问题是我想监视对使用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)

查看更多

提问者
marjon4
被浏览
64
marjon4 2020-01-31 20:33

通过改用$ scope。$ watchCollection解决了该问题。如果有人碰到相同的问题。