angularjs - 为什么我收到 RangeError: Maximum call stack size exceeded 观察对父范围变量的更改(过滤的 ng-repeat 数组)?
问题描述
我的问题是我想观察对使用 ng-repeat 创建的过滤数组的更改,因为我已经知道 ng-repeat 创建自己的作用域,并且在使用 $scope 观察数组时引用了父作用域.$watch 实际上有效(它准确地检测到数组的更改),我收到多个控制台日志错误说:angular.js:12520 RangeError: Maximum call stack size exceeded。 有人对我可以做些什么来解决问题有任何意见吗?
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 解决了这个问题。如果有人遇到同样的问题。
推荐阅读
- python - Python bs4 Scraping,如何在列表中找到某些类并跳过但刮掉其余部分
- firebase - 如何使用flutter cloud_firestore包传递firestore auth token
- php - Divi favicon 不安全链接
- android - 如何在微调器中获取对象的特定 ID
- r - 使用 ggplot 在多面图之间添加图
- excel - 循环遍历 Recordset 行并粘贴(如果为真)
- scala - scala通过对象属性类型约束列表对象的类型
- excel - 有条件地插入分页符
- blogger - 重定向到模板的另一个页面原因
- security - 如何限制从 Internet 访问远程 Linux 服务器上的容器端口?