布尔属性的单选按钮

Phi*_*ipp 27 angular2-forms angular

我有一个简单的布尔属性valid在我的对象document ,需要将其绑定到无线输入.

这是我到目前为止:

<input type="radio" name="valid" id="validTrue" (click)="document.valid = true" [checked]="document.valid"/>
<input type="radio" name="valid" id="validFalse" (click)="document.valid = false" [checked]="!document.valid"/>
Run Code Online (Sandbox Code Playgroud)

至少在点击时设置属性,但无线电输入不显示其状态.在我的浏览器的开发者控制台中查看我发现ng-reflect-checked已设置属性但它似乎不会对html radio-input产生影响.

我究竟做错了什么?
有没有人有一个工作"angular2-boolean-radio-input"片段?

Gün*_*uer 72

在新的表单模块中,这可能会做你想要的

  <input type="radio" name="food" [(ngModel)]="document.valid" [value]="true">
  <input type="radio" name="food" [(ngModel)]="document.valid" [value]="false">
Run Code Online (Sandbox Code Playgroud)

另请参阅 新表单模块的设计doc

  • 你是对的.就这么简单.我想我已经尝试了这个但是忘记将vale属性放在方括号中. (3认同)
  • 没有`[]`你会得到`true`和`false`作为字符串,我猜这是JS/TS中的值'true`(不确定,我不太用它) (3认同)
  • @DarionN 如果您使用“value”,则使用正常的属性绑定,它始终将值作为字符串传递。使用“[value]”,它成为一个属性绑定,将所有值作为原始类型传递。使用 `[]` 时,`"..."` 中的部分被解释为代码,而 `true` 作为布尔值传递,而使用 `value="true"` 时,`"true"` 作为字符串传递。在 JS 中,“false”也是 true,因此对于字符串值来说这是行不通的。 (3认同)
  • 我尝试这样做,但是我的单选按钮未选中。我需要将设置为true的一个加载为默认选中状态,而另一个保持未选中状态。我该如何激活这种行为? (2认同)