4

シナリオ:ユーザーがアイテムをクリックします。次のコードが実行され、アイテムの名前が入力されたテキストボックスでモーダルが開きます。

$scope.edit = function (item) {
    $scope.editingItem = { Name: item.Name };
};

モーダル内の私のHTML:

<input type="text" ng-model="editingItem.Name"/>

これは正常に機能し、モーダルショー(を使用ng-show)とテキストボックスにアイテムの名前が入力されます。

保存ボタンを押すまで元のオブジェクトを(AngularJS自動データバインディングを介して)変更したくないため、新しいオブジェクトを使用してテキストボックスにデータを入力しています。

次に、このHTML:

<a href="" ng-click="update(editingItem)">Save</a>

につながる:

$scope.update = function (item) {
    // What do I put in here to update the original item object that was passed
    // into the edit function at the top of this question?!
};

update私の問題は、メソッドに何を入れるかです。itemオリジナル(アイテムの配列で保持されている)を更新したい。

4

1 に答える 1

4

私はこれを行います:

$scope.edit = function (item) {
    $scope.editingItem = { Name: item.Name };
    $scope.originalItem = item;//store the instance of the item to edit
};

$scope.update = function (item) {
    $scope.originalItem.Name = item.Name;//copy the attributes you need to update
    //clear temp items to remove any bindings from the input
    $scope.originalItem = undefined;
    $scope.editingItem = undefined;
};
于 2012-08-05T17:18:24.387 に答える