【问题标题】:How to implement the cancel button for edit functionality in angularjs如何在angularjs中实现编辑功能的取消按钮
【发布时间】:2016-01-13 09:37:35
【问题描述】:

我使用了编辑按钮。编辑后我有保存和取消按钮。保存按钮按预期工作,但不是取消按钮。 如果我在尝试编辑后单击取消按钮,它应该显示以前的文本。谁能帮帮我
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>

【问题讨论】:

  • 您应该复制您要编辑的项目。如果按取消,则用副本替换原点。
  • 你能在上面的jsfiddle中显示吗
  • 这个小提琴可能有帮助:jsfiddle.net/7Lbjuhsq

标签: angularjs edit cancel-button


【解决方案1】:

复制您要编辑的对象。如果按取消替换原点。见fiddle

$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;
};

【讨论】:

    【解决方案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/

    【讨论】:

    • 我已经包含了一个 jsfiddle。应该没问题。请检查一下。
    • @Christoph item.oldName 和 item.name 是字符串,它们是 item 对象的不同属性。我认为没关系。你看到什么问题?您可以在此处查看项目对象内容:jsfiddle.net/F7K63/148 您无需使用 angular.copy 复制单个字符串。
    • 是的,你是对的,字符串没关系。但我认为它应该适用于所有对象;)
    • 在这种情况下,很明显我们对字符串进行了操作(值保存在输入中)。所以我认为使用 angular.copy 有点过头了。
    猜你喜欢
    • 1970-01-01
    • 2020-05-12
    • 2021-05-21
    • 2013-08-10
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多