/ / AngularJS: ng-repeat track por $ index dentro de loops aninhados - angularjs, angularjs-ng-repeat

AngularJS: ng-repeat track por $ index dentro de loops aninhados - angularjs, angularjs-ng-repeat

Eu preciso de um segundo índice $ para o meu loop ng-repeat aninhado. Como e onde devo colocar isso?

Site AngularJS diz

Criar aliases para essas propriedades é possível com ngInit. este pode ser útil quando, por exemplo, aninhando 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?-->

Se eu usar o $ index novamente, parece funcionar, mas não tenho certeza se essa é a coisa certa? Eu tenho certeza que existe uma maneira fácil e correta de fazer isso, eu simplesmente não consegui encontrar um exemplo.

obrigado

Respostas:

116 para resposta № 1

$index vai se referir ao índice no mais interno ngRepeat escopo, então se isso é o que você precisa, você pode simplesmente usá-lo.

O que os documentos estão descrevendo é um cenário em que você precisa acessar $index no pai ngRepeat. Você pode obtê-lo de duas maneiras: uma é usar $parente outro é usar ngInit, como os documentos angulares sugeriram. Aqui está um exemplo ...

<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>

Violino