Подтвердить что ты не робот

Получить индекс в для... директивы в Angular 2

На данный момент существует ли способ получить текущий индекс итерации в директиве for..of в Angular 2? Другими словами, эквивалент $index в Angular.js v1...

Пример кода:

<ul *for="#task of allTasks">
    <li>{{ $index}} - {{ task.label }}</li>
</ul>

(конечно, этот код не работает, он не предоставляет текущий индекс)

4b9b3361

Ответ 1

<ul>
    <template ngFor let-task [ngForOf]="allTasks" let-i="index">
        <li>{{ i }} - {{ task.label }}</li>
    </template>
</ul>

Но вы должны использовать самую последнюю версию быстрого запуска

BTW - приведенное выше эквивалентно следующему синтаксическому сахару

<li *ngFor="let task of allTasks; let i=index">{{ i }} - {{ task.label }}</li>

Ответ 2

Синтаксис обновлен и теперь (с Angular2.beta13, апрель 2016 года):

<li *ngFor="let item of items; let i = index"></li>

Например:

<li *ngFor="let item of items; let i = index">
   item={{item}} index={{i}}
</li>

Ответ 3

Используйте * ngFor, пусть:

<li *ngFor="let menu of tempMenuModel.MenuItems.Items;let i=index" [ngClass]="{'active' : clickedItem == i}" (click)="SelectMenu(menu,i)">
      <span>{{menu.Header ==null?menu.Name:menu.Header}}</span>
</li>

компонент:

SelectMenu(menu, $index) {       
    this.clickedItem = $index;        
}

Ответ 4

обновить, использовать let, not #

<div *ngFor="let user of users; let i=index">
    {{i}}
</div>