2

ユーザーがフォームをリセットできるように、Angular を使用$resourceしています。angular.copyユーザーが保存ボタンをクリックすると、私が呼び出し$scope.save()$resourceを使用して保存され$save()ます。コールバック内で$save、マスターとモデルを置き換えて、バックエンドで行われた変更を反映しますが$watch、ユーザーが手動でフォームを編集するまで、変更を反映できません。

理由はありますか?

// db.schema is a $resource
var master = db.schema.get(function() {
   $scope.schema = angular.copy(master);
});

$scope.$watch('schema', function() {
   // triggers when $scope.schema is changed
}, true);

$scope.save = function() {
   $scope.schema.$save(function(savedSchema) {
      master = new db.schema(savedSchema);

      // this won't trigger the $watch, but editing the form will
      $scope.schema = angular.copy(master);
   });
};
4

1 に答える 1