我有一个使用md-checkbox的反应式表单,其默认值为false,但是当我提交表单而没有切换复选框时,表单数据中返回的值为null。
模板
<form [formGroup]="someForm" (ngSubmit)="onSubmit(someForm)">
<md-checkbox formControlName="allowDependents"></md-checkbox>
</form>
组件
export class SomeComponent {
private allowDependents: FormControl = new FormControl(false);
private someForm: FormGroup;
constructor(
private formBuilder: FormBuilder
) {
this.someForm = formBuilder.group({
'allowDependents': this.allowDependents
});
}
private onSubmit(formData: any): void {
// formData.value.allowDependents === null if the checkbox has not been toggled but it should be false.
}
}
此外,如果我将窗体控件的默认值设置为true,则默认情况下不会选中该复选框,该值为null。
我也尝试将模板更新为此。 <md-checkbox formControlName="allowDependents" [checked]="true">
仍未选中复选框,我进一步删除了formControlName属性,但是检查了等于true,现在最后选中了复选框。基于该行为,似乎该值被表单组覆盖,但被设置为null而不是true / false。