我有一个简单的 ngFor
循环,它也跟踪当前的 index
. 我想将 index
值存储在属性中,以便我可以打印它 . 但我无法弄清楚它是如何工作的 .
我基本上有这个:
<ul *ngFor="#item of items; #i = index" data-index="#i">
<li>{{item}}</li>
</ul>
我想将 #i
的值存储在属性 data-index
中 . 我尝试了几种方法,但没有一种方法可行 .
我在这里有一个演示:http://plnkr.co/edit/EXpOKAEIFlI9QwuRcZqp?p=preview
如何将 index
值存储在 data-index
属性中?
5 回答
仅仅是对此的更新,Thierry的答案仍然是正确的,但Angular2已经对以下内容进行了更新:
#i = index
现在应该是let i = index
编辑/ UPDATE:
*ngFor
应该在您想要预告的元素上,因此对于此示例,它应该是:编辑/ UPDATE
Angular 5
其他答案是正确的,但您可以完全省略
[attr.data-index]
并使用我将使用此语法将索引值设置为HTML元素的属性:
这是更新的plunkr:http://plnkr.co/edit/LiCeyKGUapS5JKkRWnUJ?p=preview .
Update for recent angular 2 releases 您必须使用
let
来声明值而不是#
.我认为它之前已经得到了回答,但如果你填充无序列表只是一个修正,
*ngFor
将出现在你要重复的元素中 . 所以它应该是<li>
. 此外,Angular2现在使用let来声明变量 .在Angular 5/6中:
(见Local Variables)