如何在ngfor角5内单击时添加表单字段

时间:2018-09-23 15:06:12

标签: angular

https://angular-tpw9sy.stackblitz.io

需要向表单动态添加两个表单字段。没有从哪里开始。 我开发了我的应用程序的副本。 您可以在上面找到副本的链接。

1 个答案:

答案 0 :(得分:0)

如果您有一个formArray,只需使用推入

(this.myForm.get('myArray') as FormArray).push(
  this.fb.group({
    company:"123"
  })
);

如果您想在反应式表单中添加控件,则可以

this.myForm=this.fb.group({
  ...this.myForm.controls,
  newControl:this.fb.control("newControl")
})

如果要向Formarray的元素添加一些控件,则可以

index=0;
let rowArray:FormGroup=(this.myForm.get('myArray') as FormArray)
     .at(index) as FormGroup;
let newRowArray=this.fb.group({
      ...rowArray.controls,
      newControl:this.fb.control("newControl")
  });

(this.myForm.get('myArray') as FormArray).controls[index]=newRowArray;
this.myForm=this.fb.group({
  ...this.myForm.controls,
  myArray:this.fb.array((this.myForm.get('myArray') as FormArray).controls)
}
)

其中myForm是您的表单,而您在构造函数中拥有

constructor(private fb: FormBuilder) { }