AngularJS:定义一个大的$ watchCollection的方法?

时间:2014-04-28 10:41:47

标签: javascript angularjs angularjs-service

这篇文章与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"不起作用。

1 个答案:

答案 0 :(得分:1)

$watchCollection只监视第一级属性;使用$watch(..., ..., true)进行“深度”观看。注意:有3个参数,前两个与您的代码相同,第三个是true深度监视。