Подтвердить что ты не робот

AngularJS: ng-repeat track по индексу $index внутри вложенных циклов

Мне нужен второй $index для моего вложенного цикла ng-repeat. Как и где я должен это поставить?

Сайт AngularJS говорит

Создание псевдонимов для этих свойств возможно с помощью ngInit. Эта может быть полезна, например, при вложении ngRepeats.

<div ng-repeat="person in persons track by $index">
    <div ng-repeat="something in array track by $index2"> <!-- where to init this and how to manage it?-->

Если я снова использую $index, это работает, но я не уверен, что это правильно? Я уверен, что есть простой и правильный способ сделать это, я просто не смог найти пример.

Спасибо

4b9b3361

Ответ 1

$index будет ссылаться на индекс в самой внутренней области ngRepeat, поэтому, если это вам нужно, вы можете просто использовать его.

Что описывают документы - это сценарий, в котором вам нужен доступ к $index в родительском ngRepeat. Вы можете получить это несколькими способами: один - использовать $parent, а другой - использовать ngInit, как предлагали документы Angular. Вот пример...

<li ng-repeat="thing in things" ng-init="parentIndex = $index">
    {{ $index }}
    <ul>
        <li ng-repeat="value in thing.values">
            {{ value }} 
            {{ $index }} <!-- inner $index -->
            {{ $parent.$index }} <!-- parent $index -->
            {{ parentIndex }} <!-- also parent $index -->
        </li>
    </ul>
</li>

Fiddle