如何在angularjs中实现取消按钮以进行编辑功能

时间:2016-01-13 09:37:35

标签: angularjs edit cancel-button

我使用了编辑按钮。编辑后,我有保存和取消按钮.save按钮正在按预期工作但不是取消按钮。       如果我在尝试编辑后单击取消按钮,它应显示以前的文本。任何人都可以帮助我 js在这里摆弄http://jsfiddle.net/F7K63/143/

 <tr ng-repeat="item in items">
        <td>
            <span ng-hide="item.editing">{{item.name}} <button  ng-click="editItem(item)">Edit</button></span>
            <input ng-show="item.editing" ng-model="item.name"  autofocus />
            <button ng-show="item.editing" ng-click="doneEditing(item)">Save</button>
             <button ng-show="item.editing" ng-click="Cancel(item)">Cancel</button>
        </td>
    </tr>

2 个答案:

答案 0 :(得分:8)

制作要编辑的对象的副本。如果按取消,请更换原点。请参阅https://plnkr.co/edit/CfB9rIKP7EknVNDiYZpR?p=preview

$scope.editItem = function (item) {
    item.editing = true;
    item.backupName = angular.copy(item.name);
}

$scope.doneEditing = function (item) {
    item.editing = false;
    delete item.backupName;
    //do some background ajax calling for persistence...
};
$scope.Cancel = function (item) {
    item.editing = false;
    item.name = angular.copy(item.backupName);
    delete item.backupName;
};

答案 1 :(得分:2)

最快的选择是编辑$ scope.eidtItem和$ scope.Cancel函数。

$scope.editItem = function (item) {
    item.editing = true;
    item.oldName = item.name;
}

...

$scope.Cancel = function (item) {
    item.editing = false;
    item.name = item.oldName;
};

http://jsfiddle.net/F7K63/147/