0

モデルの値がフォームで更新されないようにしようとしています。

例えば ​​:

ユーザーの保存された情報 (名前、住所など) をリストする支払い詳細フォームと、同じ情報を編集するために使用されるフォームがあります。

入力コントロールが変更されたときに表示される情報を変更したくないため、 :: を使用して1回限りのバインディングを実験してきました(ただし、モデルの値を更新して、処理のためにサーバーに送信できるようにしたいのは明らかです)。

サーバーが変更が保存された、問題ないなどの応答をした後、表示されているモデル値を更新するにはどうすればよいですか? ワンタイムバインディングを更新する方法が見つからないようです(これは完全に意図された機能であると推測しています)。

したがって、私の質問は次のようになります。

一部のコントロールのバインドを選択的に更新し、他のコントロールを更新しないようにするにはどうすればよいですか?

4

1 に答える 1

1

実際には、さまざまな変数を表示したいだけです。

一時的なモデル オブジェクト (つまり、"editedObject" のようなオブジェクトのコピー) を使用してみてください。検証すると、元のオブジェクトが更新されます。

このプランカーで動作するのを見てください

編集スペース:

<input ng-model="editCopy.value"> <button ng-click="validateChange()">Change</button>

ng-repeat :

<td ng-repeat="item in items" ng-click="editItem(item)">
    <a href="">{{item.value}}</a>
</td>

機能:

$scope.editItem = function(item){
  $scope.editCopy = angular.copy(item);
  $scope.editingItem = item;
}
$scope.validateChange = function(){
  $http.get('index.html').success(function(){
    $scope.editingItem.value = $scope.editCopy.value;
  }); 
}
于 2015-07-24T15:37:54.230 に答える