我有一个使用md-checkbox的反应形式,其默认值为false,但是当我提交表单而没有切换复选框时,表单数据中返回的值为null .

Template

<form [formGroup]="someForm" (ngSubmit)="onSubmit(someForm)">
  <md-checkbox formControlName="allowDependents"></md-checkbox>
</form>

Component

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 .