5

変更されたときに 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 関数を再度トリガーせずに値を元に戻すにはどうすればよいですか?

4

1 に答える 1