我正在使用 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/