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 $parent
und 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>