Angular 2中用于命名HTML控件的建议做法是什么:<input id="abc" name="abc" />
? Id
之类的内容需要<label for="abc">...</label>
,而Angular绑定需要设置name
。 id
和name
无法/不应该始终相同的任何原因?
当您多次使用某个组件(例如在列表中)或父组件和子组件具有相同的id
/ name
时,该怎么办? Angular可以正确处理name
,但是如何防止与id
发生冲突?
答案 0 :(得分:1)
如果您正在重复使用字符串上的组件,可能是您正在使用它们中的一组,并且可以使id依赖于*ngFor
的{{1}}来自定义id元素,如下所示:
let i = index;
将产生'0p','1p','2p'等ID
否则,您可以传递您想要绑定到ID的内容作为组件的输入
<div *ngFor="let item of items; let i = index">
<p [id]="i + 'p'">{{item}}<p>
</div>
并且测试组件将具有,例如:
<test-component [myId]="variableFromParent"></test-component>
你可以在plunker中捣乱,看看你喜欢什么,这是一个起点:http://plnkr.co/edit/UUGtMib8a2wCVP520uD1?p=preview