javascript - 使用 splice 在 Angular JS 中“取消编辑”

标签 javascript angularjs

我正在使用 datagrid,使用 listOfAttributes 数组中的数据。有编辑图标,再次单击那里的两个按钮..保存并取消编辑。我希望如果用户单击取消编辑,更新的数据应该清晰,以前的数据应该再次保留。我使用 splice 来添加先前的对象,并同时删除当前的对象,但它不起作用。

 $scope.edit = function(attribute) {
    angular.copy(attribute, $scope.copyAttr);
 }

$scope.save = function(attribute){
  // works fine;
}

 $scope.cancelEdit = function(attribute) { // doesn't work

    var indx = $scope.listOfAttributes.indexOf(attribute);

    $scope.listOfAttributes.splice(indx, 0, $scope.copyAttr);
    $scope.listOfAttributes.splice(indx,1);

} 

最佳答案

您在 indx 处插入 copyAttr,然后在 listOfAttributes 中立即将其删除。

listOfAttributes = ['A', 'B', 'C'];
listOfAttributes.splice(1, 0, 'D'); // A, D, B, C
listOfAttributes.splice(1, 1);      // A, B, C

如果要替换indx处的项目,只需拼接一次:

$scope.listOfAttributes.splice(indx, 1, $scope.copyAttr);

关于javascript - 使用 splice 在 Angular JS 中“取消编辑”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33105695/

相关文章:

javascript - Javascript 正则表达式中的分组是如何工作的?

javascript - document.getElementById() 在 uib-tab 内不起作用

javascript - Angularjs——更新后刷新 View 中的单列

javascript - Facebook 通过 ID 获取全名,无需访问 token

javascript - .preventDefault jQuery 不会在页面上执行,但会在控制台中键入时执行

javascript - 尝试使用 javascript 在我的页面上创建一个 javascript 帐户系统......但显然我忽略了一些东西

javascript - 我们应该在哪里存储 JavaScript 调用的服务连接 URL?

javascript - 在 JavaScript 中增加音频音量时的奇怪计数

javascript - 默认选择 Angular JS 中的 ng-options

javascript - Angular 表达式不适用于 html