Angular 6 FormArray丢弃空字段

时间:2018-09-01 19:44:52

标签: angular6 angular-formbuilder

我正在使用Angular 6。我有一个像下面的FormArray数组

contactAddForm: FormGroup;
phone_numbers: FormArray;

ngOnInit() {

  this.contactAddForm = this.formBuilder.group({
    first_name: new FormControl('', [
      Validators.required
    ])
    phone_numbers: this.formBuilder.array([this.createPhoneNumberFormField()])
  });
}

createPhoneNumberFormField(): FormGroup {
  return this.formBuilder.group({
    phone: new FormControl(),
    primary: new FormControl()
  });
}

此处phone文本字段,而primary复选框,它发送truefalse

但是有时动态添加更多字段,如果提交的字段为空,则分配给phoneprimary字段的值为 null

  1. 如何丢弃带有 null phone字段的formArray字段?
  2. 如何将primary的默认值设置为 false 而不是 null

1 个答案:

答案 0 :(得分:1)

您可以通过将FormControl对象的默认值作为其构造函数的第一个参数来设置。

createPhoneNumberFormField(): FormGroup {
  return this.formBuilder.group({
    phone: new FormControl(),
    primary: new FormControl(false) // asigning default as false
  });
}

如果您要在提交之前删除null字段,则必须遍历form controls并手动删除它们。