我正在使用来自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);
}
答案 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);