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

时间:2019-02-01 14:12:02

标签: html angular typescript dynamic ngfor

我正在尝试使用public class MyBootstrapper : DefaultNancyBootstrapper { public MyBootstrapper () : base() { JsonSettings.RetainCasing = true; } } 循环中的值动态设置名称标签。为id标签分配一个值没问题,但是对于name标签却不起作用。

ngFor

我将<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> 传递给$event函数的onChange的{​​{1}}等于check(),但是id始终是空字符串。为什么它们不同,如​​何动态设置i

2 个答案:

答案 0 :(得分:3)

您需要像[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

答案 1 :(得分:0)

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

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

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