<td>
での入力とスパンの両方のHTMLディレクティブを挿入し、ng-switch
を使用します。ng-switch-when
& ng-switch-default
には1つのフィールドしか表示されません。カスタムディレクティブを記述するためのit.Reasonのカスタムディレクティブを記述する必要が
<td class="sorting_1" ng-switch="mode">
<input type="text" class="form-control small" ng-switch-when="edit" id="edit" ng-model="edit.username">
<span ng-switch-default id="item.username">{{item.username}}</span>
</td>
はng-switch
の値は、個々の代わりに、グローバルに関連付けるしますです。編集、更新ボタンが含まれます:
<td ng-switch="mode">
<button class="btn btn-success btn-xs edit" ng-switch-when="edit" ng-
click="updateItem(edit, index)">
<i class="fa fa-floppy-o"></i>
</button>
<button class="btn btn-success btn-xs" ng-switch-default ng-
click="editItem(item)">
<i class="fa fa-pencil-square-o "></i>
</button>
</td>
JS入力ボックスの値がに
$scope.edit = angular.copy(oldData);
を使用して更新されます
$scope.editItem = function(oldData) {
$scope.edit = angular.copy(oldData);
$scope.mode = "edit";
}
$scope.updateItem = function(data, index) {
$scope.$emit('update', data, index);
$scope.mode = "default";
}
最後<td>
タグの追加
editItem()
機能。
イベントエミッタの使用により、メインオブジェクトが変更されます。
$scope.$on('update', function(event, data, index) {
angular.copy(data, $scope.items[index]);
});
angular.copy
を使用して値を参照として渡す代わりに、深いクローン値を使用してください。
チェックhttp://codepen.io/sumitridhal/pen/YVPQdW