Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 观察AngularJS中对象的所有属性_Javascript_Angularjs_Angularjs Watch - Fatal编程技术网

Javascript 观察AngularJS中对象的所有属性

Javascript 观察AngularJS中对象的所有属性,javascript,angularjs,angularjs-watch,Javascript,Angularjs,Angularjs Watch,我的$scope中有一个对象,它包含以下属性: $scope.content = { name : 'myname', description : 'mydescription', keyword : 'some keyword' } 现在我想听听每个属性的每一个变化。我在它自己的对象上设置了watch,但无法更改它的属性。它的属性是通过绑定到一些输入字段从UI中更改的 $scope.$watch('content', function(){ // do

我的$scope中有一个对象,它包含以下属性:

$scope.content = {
     name : 'myname',
     description : 'mydescription',
     keyword : 'some keyword'
}
现在我想听听每个属性的每一个变化。我在它自己的对象上设置了watch,但无法更改它的属性。它的属性是通过绑定到一些输入字段从UI中更改的

$scope.$watch('content', function(){
     // do some work
}
当我在某些属性上设置watch(如下所示)时,我可以在该属性中获得更改

$scope.$watch('content.name', function(){
     // do some work
}
是否有任何方法可以在不对所有属性设置“监视”的情况下侦听对象属性的更改?

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

$scope.$watch('content', function(){
     // do some work
}, true);
如果这是真的,则表达式的计算对象相等,这意味着包含属性。否则,它只是作为参考进行计算。

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

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

如果这是真的,则表达式的计算对象相等,这意味着包含属性。否则它的计算只是为了参考。

我们可以通过将第三个参数传递为true来使用等式$watch,因为API引用$watch接受以下三个参数

$WatchExpression,侦听器,[objectEquality]

如果第三个参数为true,它将监视对象内的所有属性

$scope.$watch("content",function(){},true);
有关$watch的更多信息,请参阅下面的视频

我们可以通过将第三个参数传递为true来使用Equality$watch,因为API引用$watch接受以下三个参数

$WatchExpression,侦听器,[objectEquality]

如果第三个参数为true,它将监视对象内的所有属性

$scope.$watch("content",function(){},true);
有关$watch的更多信息,请参阅下面的视频