这篇文章与Is there a tidy way to define a large watch collection for AngularJS?
不同我的代码是(service.js):
var MyJSON = {
array: [
{k:'v'},
{k:'v'},
{k:'v'}
],
info: {
k: 'v',
k2: 'v2'
},
last: 1398680914943 // Date.now()
}
$rootScope.$watchCollection(function () { return MyJSON; }, function (n, o) {
console.log('Change');
});
当我处理根对象" MyJSON"时检测更改。像这样:
MyJSON.last = 123456789; // console: Change
但如果我这样做:
MyJSON.info.k = 'vDummie';
或:
MyJSON.array.push({k:'something'});
" $ watchCollection"不起作用。
答案 0 :(得分:1)
$watchCollection
只监视第一级属性;使用$watch(..., ..., true)
进行“深度”观看。注意:有3个参数,前两个与您的代码相同,第三个是true
深度监视。