2017-06-19 75 views
0

在我的$范围对象的所有属性我有一个对象,它包含一些属性,如下列:观看关于如何在AngularJS

$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 
} 

有什么办法来听而不集手表上的所有属性改变对象的属性?

回答

2

使用第三个参数的$watch,像这样:

$scope.$watch('content', function(){ 
    // do some work 
}, true); 

如果这是真的,因为对象的相等,这意味着属性被包括在表达式求值。否则,它只是评估参考。

0

我们可以通过使第三个参数为真,按API参考$手表使用平等$手表接受三个参数如下

$观看(watchExpression,听众,[objectEquality]);

如果第三个参数是真实的,它会看所有属性的对象

$scope.$watch("content",function(){},true); 

里面更多的信息在$看你可以参考下面的视频 https://www.youtube.com/watch?v=IKPrhB8alV4