Angularjs 观察对象的所有元素,只有一个除外
我的密码里有一块手表Angularjs 观察对象的所有元素,只有一个除外,angularjs,Angularjs,我的密码里有一块手表 scope.$watch(foo, function () { ... }, true); 这确保了如果对象foo中的任何属性发生更改,那么将调用此监视。我想破例。如果foo中除了一个属性以外的任何属性发生了变化,我想称这个手表为watch。如果该属性发生更改,则不应调用此手表。这怎么可能呢?我可以想出两种不同的方法: 选项1,只需在$watch功能开始时处理它: scope.$watch(foo, function (newVal, oldVal) { if
scope.$watch(foo, function () {
...
}, true);
这确保了如果对象foo中的任何属性发生更改,那么将调用此监视。我想破例。如果foo中除了一个属性以外的任何属性发生了变化,我想称这个手表为watch。如果该属性发生更改,则不应调用此手表。这怎么可能呢?我可以想出两种不同的方法: 选项1,只需在
$watch
功能开始时处理它:
scope.$watch(foo, function (newVal, oldVal) {
if(newVal.propertyThatYouDontWantToWatch === oldVal.propertyThatYouDontWantToWatch)
return;
/* Normal Code here*/
}, true);
选项2,定义您不希望这样监视的属性(我很确定此选项不会触发foo
对象的$watch
):
你试过把它放在手表里吗?
Object.defineProperty(
foo,
'propertyThatYouDontWantToWatch',
{
enumerable:false,
configurable:true,
writable: true,
value:{} /*Replace {} with the value that you want to assign to your property*/
}
);