我的$ scope中有一个对象,其中包含一些属性,如以下内容:
$scope.content = {
name : 'myname',
description : 'mydescription',
keyword : 'some keyword'
}
现在我想听听每个属性的每个变化。我在自己的对象上设置监视但我无法对其属性进行更改(通过绑定到某些输入字段,其属性从UI更改)。
$scope.$watch('content', function(){
// do some work
}
当我按照以下属性设置监视时,我可以更改该属性。
$scope.$watch('content.name', function(){
// do some work
}
有没有办法在没有设置监视所有属性的情况下听取对象属性的更改?
答案 0 :(得分:3)
使用$watch的第三个参数,如下所示:
#define in_cksum(m, len) in_cksum_skip(m, len, 0)
如果这是真的,则表达式被评估对象相等性,这意味着包含属性。否则,它只是评估参考。
答案 1 :(得分:0)
我们可以通过将第三个参数传递为true来使用Equality $ watch,因为根据API参考$ watch接受三个参数,如下所示
$ watch(watchExpression,listener,[objectEquality]);
如果第三个参数为true,它将监视对象内的所有属性
$scope.$watch("content",function(){},true);
有关$ watch的更多信息,请参阅以下视频 https://www.youtube.com/watch?v=IKPrhB8alV4