刚刚从Angular2(我的代码工作没有问题)切换到Angular4。
我有一个true
值绑定到我的一个单选按钮,但是在视图渲染时没有选中单选按钮。
下面显示的简化版代码:
我的组件:
// all relevant imports...
...
export class My Component{
public form: FormGroup = this.formBuilder.group({ prop1: ''});
constructor(private formBuilder: FormBuilder){
this.form.patchValue({prop1: true});
}
}
视图:
<form [formGroup]="form">
<input type="radio" class="form-control" formControlName="prop1" [value]="true"/>
<input type="radio" class="form-control" formControlName="prop1" [value]="false"/>
</form>
答案 0 :(得分:1)
如果您复制并粘贴OP的代码,代码就有效。但那是因为patchValue线。如果删除patchValue,则不会选中该复选框,这是正确的行为。将[value]与反应形式一起使用违背了反应形式的目的。使用patchValue是正确的。我很惊讶这与angular2一起工作。
但是,如果你必须在模板中检查它,你可以使用[checked] =&#34; true&#34;与[value] =&#34; true&#34;或者只是将其作为常规属性进行检查。
尽管如此,对于反应形式,使用FormControl API比使用属性更合适。