Angular 6 FormArray 丢弃空字段

Angular 6 FormArray discard null fields

我正在使用 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()
  });
}

此处 phonetext 字段,而 primarycheckbox 发送 truefalse.

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

  1. 如何从提交中丢弃 null phone 字段的 formArray 字段?
  2. 如何设置 primary 默认为 false 而不是 null?

您可以将默认值设置为 FormControl 对象,方法是将其作为构造函数的第一个参数提供。

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

如果您想在提交前删除 null 字段,则必须循环 form controls 并手动删除它们。