Hur man använder index i @for i HTML Angular 18
Hur kan jag definiera index-variabeln i @for i Angular 17
const users = [
{ id: 1, name: 'Ali' },
{ id: 2, name: 'reza' },
{ id: 3, name: 'jack' },
];
<ul>
@for (user of users; track user.id; let i = index) {
<li>{{ user.name + i }}</li>
} @empty {
<span>Empty list of users</span>
}
</ul>
index är inte känt som vi hade i *ngFor och fick Okänd "let"-parametervariabel "index" i Angular17 @for
Men följande fungerar:
<ul>
<li *ngFor="let user of users; let i = index">{{ user.name + i }}</li>
</ul>
Svar #1
Bara $ saknades, det borde vara $index istället för index. Det finns också några andra kontextuella variabler snarare än $index REF:
| Variabel | Betydelse |
|---|---|
| $count | Antal objekt i en samling som itereras över |
| $index | Index för den aktuella raden |
| $first | Om den aktuella raden är den första raden |
| $last | Om den aktuella raden är den sista raden |
| $även | Om det nuvarande radindexet är jämnt |
| $udda | Om det nuvarande radindexet är udda |
och användningen skulle vara:
@for (item of items; track item.id; let idx = $index, e = $even) {
Item #{{ idx }}: {{ item.name }}
}
Vi kan också använda vår befintliga mall och köra detta kommando för att migrera till control-flow.
ng g @angular/core:control-flow
Svar #2
Du kan använda $index överallt inom räckvidden för @for-blocket utan att behöva ge det ett alias:
<ul>
@for (user of users; track user.id) {
<li>{{ user.name + $index }}</li>
} @empty {
<span>Empty list of users</span>
}
</ul>
