Jeder! In Angular 2, * ngFür einen neuen Kontext für jede Iteration erstellen? wie ng-repeat in eckigen js ?. Ich muss einen Variablenwert innerhalb von * ngFor ändern, aber dieser Wert ändert sich für alle Iterationen. Beispiel:Angular 2, ngFür jede Iteration einen neuen Kontext erstellen?
<div *ngFor="let label of labels">
<div class="company"><a (click)="isCollapsed = !isCollapsed;isCollapsed ? labelStyle = {color: 'gray'}:labelStyle = {color: '#337ab7'}" [ngStyle]="labelStyle">{{label}}</a>
</div>
<div [ngbCollapse]="isCollapsed">
<div class="item" *ngFor="let product of products">
<div class="meta" *ngIf="product.year == label">
<div class="details">
<div [innerHTML]=product.reference></div>
</div>
</div>
</div>
</div>
</div>
Wenn ich auf ein Etikett klicken Sie, isCollapsed Änderung von false auf true, aber isCollpsed Änderung für alle Iterationen. Könnten Sie mir einen Ratschlag geben, nur ein Label anzuklicken und einzuklappen?
Dank
Ich denke, es muss eine Möglichkeit geben, eindeutig zu identifizieren, welche div Sie zusammenbrechen möchten. Verwenden Sie 'isCollapsed + label', wenn das Label immer eindeutig ist. – Tamas
'label' und' product' ändern sich innerhalb jedes Kontexts, aber Werte von außen (wenn Sie auf ein Mitglied aus der Komponentenklasse zugreifen, wird es für jeden Kontext gleich sein. –