我有一个选择框,它在更改时触发 http PUT。
html:
<select ng-model='color'></select>
js:
$scope.$watch('color', function(newValue, oldValue) {
$http.put('...', {color: newValue})
});
问题是,如果 http 请求由于某种原因失败,我希望选择框恢复到以前的值。
$scope.$watch('color', function(newValue, oldValue) {
req = $http.put('...', {color: newValue})
req.error(function(){
$scope.color = oldValue // will probably cause the $watch to get triggered again (bad)
});
});
这可能会导致 $watch 函数再次被触发,这是不可取的,因为它会触发不必要的 PUT。
如何在不再次触发 $watch 功能的情况下恢复值?