繁体   English   中英

如何动态设置ngFor *循环中的名称标签?

[英]How to set the name tag in a ngFor* loop dynamically?

我正在尝试使用ngFor循环中的值动态设置名称标签。 为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具有一个等于iid ,但name始终是一个空字符串。 为什么它们不同,如​​何动态设置name

您需要像[attr.ATTR_NAME]一样使用它,并且不要使用大括号。

<input type="text" [attr.id]="i" (change)="check($event)" [attr.name]="i" [(ngModel)]="s.ZBez"> 

您可以查看有关模板语法的官方文档以了解更多信息:

https://angular.io/guide/template-syntax

更新

正如@ConnorsFan在评论中指出的那样,属性绑定也应该起作用。 我创建了一个具有各种可能性的stackblitz项目。 请检查一下:

https://stackblitz.com/edit/angular-ckp8fz

您可以尝试[name]="i"

<input type="text" id ="{{i}}" (change)="check($event)" [name]="i" [(ngModel)]="s.ZBez"> 

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM