我一直在做一个我继承的 angular 项目,我无法联系到原作者。有一个我不确定的 watch 表达式,我想知道是否有人可以帮助我理解代码:
$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()
。这不是第一次观察者被调用。
关于javascript - Angular $scope.$watch newVal !== oldVal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33105362/