Html 如何在ngFor*循环中动态设置名称标记?

Html 如何在ngFor*循环中动态设置名称标记?,html,angular,typescript,dynamic,ngfor,Html,Angular,Typescript,Dynamic,Ngfor,我正在尝试使用ngFor循环中的值动态设置name标记。给id标记赋值没有问题,但是对于name标记它不起作用 <table class="compactTable"> <tr *ngFor="let s of ps.State; let i = index;" > <td class="alignRight" width="15%"> <input type="text" id ="{{i}}" (change)="chec

我正在尝试使用ngFor循环中的值动态设置name标记。给id标记赋值没有问题,但是对于name标记它不起作用

<table class="compactTable">
  <tr *ngFor="let s of ps.State; let i = index;" >
    <td class="alignRight" width="15%">
        <input type="text" id ="{{i}}" (change)="check($event)" name ="{{i}}" [(ngModel)]="s.ZBez"> 
    </td>
  </tr>
</table>
我将onChange传递给check函数的$event的id等于I,但name始终是空字符串。为什么它们不同?如何动态设置名称?

您可以尝试[name]=I

编辑:对于id,您可以尝试相同的[attr.id]=i

您需要像[attr.attr\u NAME]一样使用它,并且不带双括号

<input type="text" [attr.id]="i" (change)="check($event)" [attr.name]="i" [(ngModel)]="s.ZBez"> 
有关更多信息,请查看有关模板语法的官方文档:

更新

正如@ConnorsFan在评论中所说的,属性绑定也应该起作用。我创建了一个具有所有可能性的stackblitz项目。请查看:


我看你的代码没有任何问题。它应该很好用。你能提供一个演示吗?他为什么需要使用属性绑定?属性绑定也应该起作用,不是吗?事实上你是对的。需要不是正确的词。我编辑了答案
<input type="text" [attr.id]="i" (change)="check($event)" [attr.name]="i" [(ngModel)]="s.ZBez">