我希望只要集合中所有对象的属性IsSelected设置为false,就会禁用一个按钮。
要深入观察集合,以便在属性发生变化时采取行动,我会这样做:
$scope.$watch('messages', function (i) {
//do something
}, true);
但是这个集合太大了(实际上我只有两个元素,但这些都是大对象)而且我运行的是“内存不足”异常。
那么,我该怎么做呢?
[编辑]
关注@boxed建议:
$scope.$watch(function () {
return $($scope.messages).map(function () {
return this.IsSelected;
});
}, function (e) {
//do something
});
它仍然很慢,我遇到了错误:
答案 0 :(得分:2)
$ watch的第一个参数可以是一个函数。在该函数中,您可以返回所有项目的所有IsSelected属性的列表。
答案 1 :(得分:0)
您可以增加摘要限制 https://docs.angularjs.org/api/ng/provider/ $ rootScopeProvider
$rootScopeProvider.digestTtl(25);