首页 > 解决方案 > Angular 11 ReactiveForm:如何将表单控件更改为表单数组(表单数组内的表单数组)

问题描述

我有一个带有这些控件的表单数组

this.formBuilder.group({fieldName: [null, Validators.required],
displayName: [null, Validators.required],
fieldType: [0, Validators.required],
defaultValue: [null],
fieldValues: [null],
sortOrder: [null],});

我有一个任务,当我单击一个按钮时,它会将 defaultValue 控件更改为一个带有两个控件的表单数组(当前是一个表单控件)。我是 Angular 的新手,我不知道如何用 Html 和ts 文件。谁能帮我?

标签: angularangular-reactive-formsformarray

解决方案


反应式表单提供setControl了您可以替换现有控件的功能。所以如果想把它做成一个带有两个表单控件的formarray,可以通过以下方式实现:

this.form.setControl(
  'defaultValue',
  this.formBuilder.array([
    this.formBuilder.control(''),
    this.formBuilder.control('')
  ])
);

推荐阅读