观察 AngularJS 中对象的所有属性

had*_*uri 2 javascript angularjs angularjs-watch

我的 $scope 中有一个对象,其中包含一些属性,例如以下属性:

$scope.content = {
     name : 'myname',
     description : 'mydescription',
     keyword : 'some keyword'
}
Run Code Online (Sandbox Code Playgroud)

现在我想听听每个属性的每一个变化。我在其自己的对象上设置了监视,但无法更改其属性(其属性是通过绑定到某些输入字段从 UI 更改的)。

$scope.$watch('content', function(){
     // do some work
}
Run Code Online (Sandbox Code Playgroud)

当我如下设置监视某些属性时,我可以获取该属性的更改。

$scope.$watch('content.name', function(){
     // do some work
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在不设置所有属性的监视的情况下监听对象属性的变化?

Kar*_*eid 7

使用$watch的第三个参数,如下所示:

$scope.$watch('content', function(){
     // do some work
}, true);
Run Code Online (Sandbox Code Playgroud)

如果这是 true,则将评估表达式的对象相等性,这意味着包含属性。否则只是评价仅供参考。