如何设置 Angular 响应式表单数组中表单控件的值

问题描述 投票:0回答:2

我有一个反应形式:

    this.leDetailsUpdateForm = new FormGroup({
      entityNameArray: new FormArray([
        new FormGroup({
          id: new FormControl(),
          entityName: new FormControl(),
          entityNameStartDate: new FormControl(), // <----- this i want to set
          entityNameEndDate: new FormControl(),
          entityNameStatus: new FormControl(),
          status: new FormControl(),
        }),
      ]),
    })

经过一些计算后,我尝试将其设置如下:

  setStartDates(e: any) {
    console.log(e);
    this.leDetailsUpdateForm.get('entityNameArray').get('entityNameStartDate').setValue(e)
  }

我在谷歌上没有得到所需的语法。请帮助。

angular angular-reactive-forms
2个回答
1
投票

您只能通过索引访问

FormArray
控件,因此您可以尝试类似的东西

this.leDetailsUpdateForm.controls['entityNameArray'].controls[0].controls['entityNameStartDate'].setValue(e)

0
投票

你可以试试这个:

 setStartDates(e: any) {
    console.log(e);
    this.leDetailsUpdateForm['entityNameArray'].controls.forEach(d => {
        d['entityNameStartDate'].setValue(e);
    })
  }
© www.soinside.com 2019 - 2024. All rights reserved.