2
在我的代碼觀看,除了一個
scope.$watch(foo, function() {
...
}, true);
這確保瞭如果在對象foo改變任何屬性,那麼這款手錶將被稱爲對象的所有元素我有一個手錶。我想對此做個例外。如果foo中的任何屬性發生變化(除了一個),我想調用此手錶。如果該屬性更改,則不應調用該手錶。這怎麼可能?
在我的代碼觀看,除了一個
scope.$watch(foo, function() {
...
}, true);
這確保瞭如果在對象foo改變任何屬性,那麼這款手錶將被稱爲對象的所有元素我有一個手錶。我想對此做個例外。如果foo中的任何屬性發生變化(除了一個),我想調用此手錶。如果該屬性更改,則不應調用該手錶。這怎麼可能?
我能想到的兩種不同的方式來做到這一點:
選項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*/
}
);
你有沒有嘗試做它有條件在你的手錶內? – AnkitG 2014-10-01 15:02:12