Angular 插值 HTML 属性名称

Angular interpolation in HTML attribute name

我正在使用 IntelliJ,它理解 {{foo}} 是 formControlName 属性中的插值。但在 name 属性中它没有。 IntelliJ 在名称属性中认为,{{foo}} 是一个数组,我缺少一个:就像 {foo : bar} 中一样。

代码编译得很好,这是一个 IntelliJ-Bug 还是我很幸运编译器接受了它?

<input type="radio" name="{{foo}}" formControlName="{{foo}}">

Angular 绝对允许在属性中进行插值,但通常首选的方法(主要是为了读取能力)是 属性 绑定。 name="{{foo}}" <=> [name]="foo" more info here

所以你提供的代码

<input type="radio" name="{{foo}}" formControlName="{{foo}}">

变成

<input type="radio" [name]="foo" [formControlName]="foo">

这应该会让 IntelliJ 停止抱怨。