![](/img/trans.png)
[英]AngularJS — Passing object/object property to be $watched into $scope.$watch
[英]AngularJS : $scope.$watch an object & return only its changed property
我正在做一些简单的示波器观察,例如:
$scope.$watch('myObject', function(newValue, oldValue) {
if (newValue !== oldValue) {
return newValue;
}
}, true);
其中myObject
是具有多个属性的普通对象。 我只想返回已更改的属性,即,如果有一个属性被更改,例如myObject.changedProperty
,我只想返回该属性。
但是我想监视整个对象(因此,我不必为每个属性设置不同的监视)。 如何才能做到这一点?
谢谢!
$ watchCollection可以满足您的需求。 ( $ rootScope.Scope )
$watchCollection(obj, listener);
Shallow监视对象的属性,并在任何属性更改时触发(对于数组,这意味着监视数组项;对于对象映射,这意味着监视属性)。 如果检测到更改,则会触发侦听器回调。
obj集合通过标准$ watch操作进行观察,并在每次调用$ digest()时进行检查,以查看是否已添加,删除或移动了任何项目。 只要obj中的任何内容发生更改,都将调用侦听器。 示例包括添加,删除和移动属于对象或数组的项目。
感谢大家的帮助。 我最终做了这样的事情:
$scope.$watch('myObj', function(newValue, oldValue) {
for (var prop in myObj) {
if(newValue[prop] !== oldValue[prop]) {
return newValue[prop];
}
}
}, true);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.