Angular Material 2 md-checkbox默认不适用于被动表单

时间:2017-10-17 20:21:32

标签: angular angular-material

我有一个使用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。

0 个答案:

没有答案