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

时间:2018-03-19 17:24:36

标签: angular angular-reactive-forms reactive-forms

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

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

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

但我的要求是" noOfSomething"(这是一个数字)的值变化,而不是根据" noOfSomething"的值。应该将多个表单组添加到FormArray中。我可以填写FormArray中的FormGroups。

我不知道如何初始化它并在模板中循环它。

2 个答案:

答案 0 :(得分:0)

如果我理解你,你可以看看下面的例子。

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

源代码可在GitHub上使用。

答案 1 :(得分:0)

在Reactive Form中,您可以使用AFTER知道何时更改字段,创建订阅valueChanges的表单,例如

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)
})