我有一个变量的监视。 $ scope.value
我有两种可能性来更新我的价值。
我需要确认更新是否来自我的手表。
$scope.$watch('value',function(){
//how to identify from were my actual change occured.
});
答案 0 :(得分:1)
没有内置或简单或标准的方法来执行此操作。
你可以:
设置临时变量以指示更改源,例如
var sourceOfChange;
myService.doSomething().then(function() {
sourceOfChange = 'myService';
$scope.value = ...
});
$scope.$watch('value',function() {
if( sourceOfChange === 'myService' ) {
...
}
...
});
每个源更新不同的变量,观察这些变量并执行特定于源的处理,最后更新value
,例如:
// initialization
$scope.value = ...
$scope.valueFromInput = $scope.$value;
$scope.valueFromService = $scope.$value;
// watching the source-specific values
$scope.$watch('valueFromInput', function(newval) {
doInputSpecificProcessing(newval);
$scope.value = newval;
});
// watch the value and do common processing
$scope.$watch('value', doCommonProcessing);
还可以采用其他方式