ユーザーがフォームをリセットできるように、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);
});
};