根据角度 4 中另一个 FormControl 值的值动态创建反应式 FormGroup 数组



我的初始 FormGroup 包含一些 FormControls 和一个 FormArray,它们应该动态填充 FormGroups

myForm: formBuilder.group({
....
noOfSomething: ['', Validators.required],
something:  this.formBuilder.array([])
}),

我可以通过addButton在表单数组内创建一个FormGroup,并通过删除按钮将其删除。

但我的要求是当"noOfSomething"(这是一个数字)的值发生变化时,而不是根据"noOfSomething"的值,许多表单组应该添加到FormArray中。 和 我可以在该表单数组中填充表单组。

我不确定如何初始化它并在模板中循环访问它。

如果我理解正确,您可以查看以下示例。

https://book-monkey2.angular-buch.com/iteration-7/i18n/admin

源代码可在 GitHub 上获得。

在响应式表单中,您可以使用 AFTER 知道字段何时更改 创建订阅 valueTChanges 的表单,例如

myForm.get('noOfSomething').valueChanges((value:any)=>
{   let controls:FormGroup[]=[]
for (let i=0;i<value;i++)
{
controls.push(this.formBuilder.group(
{uno:0
dos:0
}) 
}
myForm.get('something')=this.formBuilder.array(controls)
})

最新更新