我一直在做一个我继承的 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/