在 Angular HTML 中有括号 [] 和没有括号有什么区别?

What is the difference with brackets [] and without them in Angular HTML?

我在 angular 中使用了反应形式,并将单选按钮添加到我的 HTML 代码中。 首先,我将代码放在下面,并使用 'default' 关键字打开复选框 select 默认值。但是我第二次加载相同的表单默认检查不可见。在类型脚本形式中,我将修补值 'true' 以形成默认控制器。

<mat-radio-button  value="true" id="1" [checked]="true" />
<mat-radio-button  value="false" id="2"  />

我改成下面这样。

<mat-radio-button  [value]="true" id="1" />
<mat-radio-button  [value]="false" id="2" />

现在它按预期工作了。需要一些专家帮助,这种不同的方式在内部发生了什么?

value="true" 绑定 string 'true' 而不是布尔值。

[value]="true" 绑定到布尔值 true。使用方括号 [],Angular 绑定到文字(布尔值、字符串、数字等)或组件中任何 public 或模板变量。

value="true" 等同于 [value]="'true'".

Brackets 告诉 Angular 输入范围 属性 是一个表达式,需要计算。例如:

<mat-radio-button [prop]="prop" />

将尝试访问其范围内的 prop 变量并获取其值,而

<mat-radio-button prop="prop" />

将简单地将 prop 属性添加到分配了字符串值的元素