'取消编辑'在使用拼接的角度js中

时间:2015-10-13 14:44:29

标签: javascript angularjs

我正在使用来自listOfAttributes数组的数据的datagrid。有编辑图标,再点击那里两个按钮那里..保存和取消编辑。我想如果用户点击取消编辑,更新的数据应该是明确的,之前的数据应该再次存在。我正在使用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);

} 

1 个答案:

答案 0 :(得分:1)

您在copyAttr处插入indx,然后在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);