/ / AngularJS: ng-track by $ index in verschachtelten Schleifen - angularjs, angularjs-ng-repeat

AngularJS: ng-track by $ index innerhalb von verschachtelten Schleifen - angularjs, angularjs-ng-repeat

Ich brauche einen zweiten $ Index für meine verschachtelte ng-repeat-Schleife. Wie und wo soll ich es hinstellen?

AngularJS Website sagt

Das Erstellen von Aliasen für diese Eigenschaften ist mit ngInit möglich. Dies kann nützlich sein, wenn Sie beispielsweise ngRepeats verschachteln.

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

Wenn ich $ index wieder benutze, scheint es zu funktionieren, aber ich bin mir nicht sicher, dass das das Richtige ist? Ich bin mir sicher, dass es einen einfachen und korrekten Weg gibt, ich konnte einfach kein Beispiel finden.

Vielen Dank

Antworten:

116 für die Antwort № 1

$index bezieht sich auf den Index auf der innersten ngRepeat Umfang, also wenn Sie das brauchen, können Sie es einfach benutzen.

Was die Dokumente beschreiben, ist ein Szenario, auf das Sie zugreifen müssen $index im Elternteil ngRepeat. Sie können es auf mehrere Arten bekommen: Man ist zu benutzen $parentund ein anderes ist zu verwenden ngInit, wie die Angular Docs vorgeschlagen haben. Hier ist ein Beispiel ...

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

Geige