RodgerFox
@RodgerFox

Как удалить переменную в массиве, который находится в массиве?

Уже голойвой об стенку бьюсь. Постоянно одна ошибка, функция не определенна.
Суть:
имеем массив, в нем под массивы, прим.:
$scope.gigliList = [{
            "gigli": [{
                "elemka": "kek"
            }, {
                "elemka": "kek"
            }]
        }, {
            "gigli": [{
                "elemka": "kek"
            }, {
                "elemka": "kek"
            }, {
                "elemka": "kek"
            }]
        }

И структуру шатамэлочки:
<section ng-repeat="list in gigliList" ng-init="gigleIndex = $index">
   <div ng-repeat="item in list.gigli">...
         <factory> 
              <span ng-click="removeItem(gigleIndex, item, $index)">delete</span>
          </factory>
   </div>
</section>

репеат в репеате, вызывает директиву, в ней кнопочка удалить, элемент из первого массива не составляет труда:
$scope.removegigli = function(list) {
	var index = $scope.gigliList.indexOf(list); //выбираем нужный
        $scope.gigliList.slice(index, 1); // удаляем 
}

А как быть с под массивом? Ну все, что знал и перечитал перепробовал.
Что сейчас:
$scope.removeItem = function(gigleIndex, item, $index) {
// gigleIndex — номер массива родителя
// item сам элемент во втором репеате
// $index номер элемента в репеате. 
// и конечно же строчка ниже не работает 
$scope.gigleList[rowIndex].slice(item, 1);


$scope.gigleList[rowIndex] — вот поч не работает? Пробовал spice в себя же сувать, или где то видел или приснилось.
Подскажите пожалуйста, как правильно "пристроиться" к под массиву?

Доп. выложил на plnkr.co/edit/1G07tLDCZyjPHZOASuW5?p=preview (названия переменных взял с сущ.. проекта и они отличаются от кода выше)
  • Вопрос задан
  • 286 просмотров
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
давайте быстренько разберемся.

$scope.gridList[rowIndex]

вот тут у нас идет ссылка на объект, у него нет метода splice.

Далее...

removeItem(gigleIndex, item, $index)

item тут лишний, так как мы уже передаем индекс элемента.

$scope.gridList[rowIndex].gigli.splice(index, 1)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
plnkr.co Выложите код.
rowIndex - что это и откуда?
splice() - передается индекс, а Вы туда объект пихаете.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы