ng作为属性中的索引值
我有一个简单的ngFor
循环,它也跟踪当前的index
。 我想在属性中打印该index
值。 但我不明白这应该如何工作。
我基本上有这个:
<ul *ngFor="#item of items; #i = index" data-index="#i"> <li>{{item}}</li> </ul>
我想在属性data-index
打印#i
的值。 我尝试了几种方法,但都没有工作。
我在这里有一个演示: http : //plnkr.co/edit/EXpOKAEIFlI9QwuRcZqp?p=preview
如何在data-index
属性中打印index
值?
我将使用此语法将索引值设置为HTML元素的属性:
<ul *ngFor="#item of items; #i = index" [attr.data-index]="i"> <li>{{item}}</li> </ul>
一个小评论。 也许你可以在li
元素上使用ngFor
而不是ul
元素
这是更新的plunkr: http ://plnkr.co/edit/LiCeyKGUapS5JKkRWnUJ?p=preview。
更新最近的angular度2版本您必须使用let
来声明值而不是#
。
<ul *ngFor="let item of items; let i = index" [attr.data-index]="i"> <li>{{item}}</li> </ul>
我认为它已经被回答了,但是如果你正在填充一个无序的列表,那么*ngFor
就会出现在你想要重复的元素中。 所以它应该是内部的<li>
。 另外,Angular2现在使用let来声明一个variables。
<ul> <li *ngFor="let item of items; let i = index" [attr.data-index]="i"> {{item}} </li> </ul>
只是对这个更新,Thierry的答案仍然是正确的,但是Angular2已经有了一个更新:
<ul *ngFor="let item of items; let i = index" [attr.data-index]="i"> <li>{{item}}</li> </ul>
#i = index
现在应该是let i = index
编辑/ UPDATE:
*ngFor
应该在你想要foreach的元素上,所以对于这个例子应该是:
<ul> <li *ngFor="let item of items; let i = index" [attr.data-index]="i">{{item}}</li> </ul>
其他的答案是正确的,但你可以一起省略[attr.data-index]
,然后使用
<ul> <li *ngFor="let item of items; let i = index">{{i + 1}}</li> </ul