我是Angular 2的新手,我试图为*ngFor中的div提供一个动态分配的id.我希望这些div被称为'wave1,wave2,wave3'等.
<li *ngFor="let episode of episodes; let i = index">
<div id="wave{{i}}"></div>
</li>
Run Code Online (Sandbox Code Playgroud)
但是,这会引发以下错误:
ERROR DOMException: Failed to execute 'querySelector' on 'Document':
'#wave[object Object]' is not a valid selector.
Run Code Online (Sandbox Code Playgroud)
我还没有能够在stackoverflow上为Angular 2找到答案.如果这是重复的道歉
Hen*_*ifa 13
你可以用{{ 'wave' + i }}
而不是wave{{i}}
.使其成为角度表达.这是完整的ngFor
:
<li *ngFor="let episode of episodes; let i = index">
<div id="{{ 'wave' + i }}"></div>
</li>
Run Code Online (Sandbox Code Playgroud)
它工作并创造div
正确的id
document.getElementById("wave1")
Run Code Online (Sandbox Code Playgroud)
输出将是这样的:
<div id=?"wave1">?wave1?</div>
Run Code Online (Sandbox Code Playgroud)
但要记住你的代码就可以开始wave0
为i = index
从0开始.
你不需要定义i
<li *ngFor="let episode of episodes">
<div id="wave{{episode}}">{{episode}}</div>
</li>
Run Code Online (Sandbox Code Playgroud)
编辑:如果剧集是对象列表
<li *ngFor="let episode of episodes">
<div id="wave{{episodes.indexOf(episode)}}">{{episode.name}}</div>
</li>
Run Code Online (Sandbox Code Playgroud)
您所拥有的是正确的,应该以4/5的角度工作。您是否正在使用一个非常老的,预发行的angular 2版本?
这是您的代码和下面的代码的堆栈闪电战,都可以正常工作
https://stackblitz.com/edit/angular-khur4v?file=app%2Fapp.component.html
您也可以这样做,这是首选方式
<li *ngFor="let episode of episodes; let i = index">
<div [attr.id]="'wave' + i">{{episode.name}}</div>
</li>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17555 次 |
最近记录: |