删除从对象中选择的行的数据?

时间:2014-06-09 05:52:33

标签: angularjs ng-grid delete-row

从网格中删除数据后,我无法清除对象中的数据。这是:http://plnkr.co/edit/u1HmCwsEzVrgQJ2SLUgY?p=preview

我用它来删除网格中的行。

angular.forEach($scope.mysel, function(rowItem) { 
  $scope.myData.splice($scope.myData.indexOf(rowItem), 1);
});

2 个答案:

答案 0 :(得分:3)

问题1:

您需要清空原始$scope.mysel数组,而不是删除它:

while ($scope.mysel.length > 0) {
  $scope.mysel.pop();
}

问题2:

在回答期间代码示例已更改,因此不确定最初是否存在第二个问题。

为清楚起见,在迭代完成之前,不要修改正在迭代的数组:

$scope.removeRow = function() {

  angular.forEach($scope.mysel, function(rowItem) {
    $scope.myData.splice($scope.myData.indexOf(rowItem), 1);
  });

  while ($scope.mysel.length > 0) {
    $scope.mysel.pop();
  }
};

演示: http://plnkr.co/edit/qEaoxL02uz5yqvw2sJ3E?p=preview

答案 1 :(得分:1)

似乎删除引用会删除网格选择与mysel引用之间的关系。你也在为它创建一个新阵列,
当你喜欢这个时,你可以使用

$scope.removeRow = function() {
    angular.forEach($scope.mysel, function(rowItem) { 
    $scope.myData.splice($scope.myData.indexOf(rowItem),1);

   while($scope.mysel.length > 0) {
      $scope.mysel.pop();
   }

});