![](/img/trans.png)
[英]How do I compare oldVal with newVal in the $scope.$watch method?
[英]Angular $scope.$watch newVal !== oldVal
我一直在做一個我繼承的角項目,我無法聯系原作者。 有這個表達我不確定,我想知道是否有人可以幫我理解代碼:
$scope.$watch(calculator.value, function(newVal, oldVal) {
if(newVal !== oldVal) {
i = newVal;
updateCalculation();
}
});
令我困惑的是這行代碼: newVal !== oldVal
。 知道為什么需要這樣的檢查嗎?
范圍的$watch
方法將始終至少執行一次回調。 它第一次執行新舊值是相同的。
$scope.$watch(calculator.value, function(newVal, oldVal) {
if(newVal === oldVal) {
console.log('First time watcher is executed');
}
if(newVal !== oldVal) {
console.log('Watcher called because values changed.');
}
});
您提供的示例表明,只有在值發生更改時才會執行updateCalculations()
。 這不是第一次召喚觀察者。
即使值沒有改變,也會在$ digest循環的每一輪調用$ watch。 所以我只能假設只有在值改變時才應該調用updateCalculation()。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.