我有一个简单的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
值?
发布于 2016-02-15 17:29:23
我将使用以下语法将索引值设置为HTML元素的属性:
Angular >= 2
您必须使用let
而不是#
来声明该值。
<ul>
<li *ngFor="let item of items; let i = index" [attr.data-index]="i">
{{item}}
</li>
</ul>
角度=1
<ul>
<li *ngFor="#item of items; #i = index" [attr.data-index]="i">
{{item}}
</li>
</ul>
下面是更新后的版本:http://plnkr.co/edit/LiCeyKGUapS5JKkRWnUJ?p=preview。
发布于 2016-06-28 17:23:52
这只是一个更新,蒂埃里的答案仍然是正确的,但Angular2有一个关于以下方面的更新:
<ul *ngFor="let item of items; let i = index" [attr.data-index]="i">
<li>{{item}}</li>
</ul>
现在,#i = index
应为let i = index
编辑/更新:
*ngFor
应该在您想要访问的元素上,因此对于本例,它应该是:
<ul>
<li *ngFor="let item of items; let i = index" [attr.data-index]="i">{{item}}</li>
</ul>
编辑/更新
角度5
<ul>
<li *ngFor="let item of items; index as i" [attr.data-index]="i">{{item}}</li>
</ul>
EDIIT/更新
Angular 7/8
<ul *ngFor="let item of items; index as i">
<li [attr.data-index]="i">{{item}}</li>
</ul>
发布于 2016-07-26 04:49:49
我想这个问题以前已经回答过了,但这只是一个更正,如果你正在填充一个无序列表,*ngFor
将会出现在你想要重复的元素中。所以它应该是insdide <li>
。此外,Angular2现在使用let来声明变量。
<ul>
<li *ngFor="let item of items; let i = index" [attr.data-index]="i">
{{item}}
</li>
</ul>
https://stackoverflow.com/questions/35405618
复制相似问题