Удаление данных строк, выбранных из объекта?

Я не могу очистить данные от объекта, после того как я удалю их из сетки. вот: http://plnkr.co/edit/u1HmCwsEzVrgQJ2SLUgY?p=preview

Я использую это, чтобы удалить строки из сетки.

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

2 ответа

Решение

Выпуск 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

Похоже, что удаление ссылки удаляет связь между выбором сетки и 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();
   }

});
Другие вопросы по тегам