2015-03-29 25 views
20

Hiện tại, có cách nào để lấy chỉ mục hiện tại của biến lặp trong chỉ thị for..of trong Angular 2 không? Nói cách khác, tương đương với $index trong Angular.js v1 ...Nhận chỉ mục theo ... chỉ thị trong Angular 2

Ví dụ mã:

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

(tất nhiên mã này không hoạt động, nó không cung cấp các chỉ số hiện tại)

Trả lời

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

Nhưng bạn phải sử dụng phiên bản rất nhất gần đây của QuickStart

BTW - ở trên là tương đương với đường cú pháp sau

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

Trên thực tế, điều này không làm việc trong QuickStart miễn là bạn đã cập nhật lên phiên bản mới nhất của QuickStart – unobf

+0

Cảm ơn. Phiên bản đầu tiên trả về một lỗi (tôi đã không cập nhật nhanh, tôi không muốn ảnh hưởng đến phần còn lại của mã của tôi bây giờ), nhưng cú pháp thứ hai hoạt động tốt. Cảm ơn ! – romaintaz

13

Cú pháp đã được cập nhật và bây giờ là (tính Angular2.beta13, tháng 4 năm 2016):

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

Ví dụ:

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

cập nhật, sử dụng phép, không #

3

Sử dụng * ngFor, chúng ta hãy:

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

Component:

SelectMenu(menu, $index) {  
    this.clickedItem = $index;   
} 
Các vấn đề liên quan