1

我正在使用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. 如何从提交中丢弃带有 phone字段的 formArray 字段?
  2. 如何将primary默认设置为false而不是null
4

1 回答 1

1

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

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

如果您想null在提交之前删除这些字段,那么您将不得不form controls手动循环并删除它们。

于 2018-09-02T10:32:23.557 回答