use*_*164 3 javascript angularjs
我一直在做一个我继承的角项目,我无法联系原作者.有这个表达我不确定,我想知道是否有人可以帮我理解代码:
$scope.$watch(calculator.value, function(newVal, oldVal) {
if(newVal !== oldVal) {
i = newVal;
updateCalculation();
}
});
Run Code Online (Sandbox Code Playgroud)
令我困惑的是这行代码: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.');
}
});
Run Code Online (Sandbox Code Playgroud)
您提供的示例表明它只会updateCalculations()在值发生更改时执行.这不是第一次召唤观察者.