2014-09-07 2 views
0

У меня есть тройной вложенный ng-repeat, который я являюсь тиром, чтобы позволить пользователю удалять элементы внутри, когда они отображаются с помощью простого .splice. Я могу отправить индекс наивысшего уровня, $ parent. $ Index для следующего уровня вниз, но на третьем уровне вниз мне нужно somehting, как $ parent. $ Parent. $ Index, чтобы передать индекс правильного элемента int он json объект для удаления, могу ли я сделать что-то вроде этого?получение 2 уровней индекса родителей в угловом

Вот что я пытался

ng-click="deleteMe($parent.$parent.$index, $parent.$index, $index) 

Как я мог правильно отправить индекс самого высокого родителя? Благодаря!

+1

Вы должны рассмотреть вопрос о принятии вещи вниз в часть, а не доходя через родителей (это предполагает определенный контекст). Вы можете использовать ng-init для обозначения разных $ index частей в разных повторах, но на самом деле я вообще не использую индекс, используя идентификатор, который не будет изменен на основе сортировки/фильтрации – shaunhusain

+1

Чтобы получить правильный элемент, просто пройдите в функции ng-click. 'ng-click =" deleteMe (item) 'Это может стать действительно уродливым и сильно не поддерживаемым. Если у вас есть еще один уровень, тогда функция будет принимать еще один аргумент, а yuo должна иметь другую переменную, содержащую еще один индекс. . – PSL

ответ

1

Использование нг-INIT см больше здесь https://docs.angularjs.org/api/ng/directive/ngInit

или образец демо здесь http://plnkr.co/edit/qRJlAzPfwaZr8NENs7K0?p=preview

<body ng-controller="MainCtrl"> 
    <div ng-repeat="father in data" ng-init="indxFirst = $index"> 
    <h3>{{father.person}}</h3> 
    <ul> 
     <li ng-repeat="kids in father.kids" ng-init="indxSecond = $index">{{kids.name}} 
     <p ng-repeat="color in kids.colors" ng-init="indxThird=$index">Colour: {{color.color}} 
      <button ng-click="delete(indxFirst, indxSecond, indxThird)">delete</button> 
      <p> 
     </li> 
    </ul> 
    </div> 
</body> 
+0

awesome, спасибо !! – ajmajmajma