将值修补到 FormArray 嵌套在 Angular 反应形式的 FormArray 的 FormArray 中

Patch Value to FormArray Nested within FormArray of FormArray in Angular reactive Forms

这里我创建了动态表单来更新表单值

我在将值修补到元数组的 formController 时遇到问题

profile:FormGroup;

constructor(public http: HttpClient, private fb: FormBuilder){

    this.profile=this.fb.group({

name: ['', Validators.required],

sections: this.fb.array([this.createDestinationSection()])

 })

}
createDestinationSection() {

return this.fb.group({

 city: [''],

pointsOfInterests: this.fb.array([this.createPointsOfInterests()])

})

}

createPointsOfInterests(){

return this.fb.group({

 meta: this.fb.array([this.createPointOfInterestMeta()])

})
createPointOfInterestMeta(){

return this.fb.group({

type: [''],
})

这是我们将值修补到 name 和 city formControll 的代码

这里find()是我们用来从数据库

获取特定id值数据的方法
this.find(this.id)
      .subscribe((data) => {

     const destinationSection = this.profile.get('sections') as FormArray;

     destinationSection.clear();
     
     data.sections.forEach((item) => {

      const pointsofInterests = item.pointsOfInterests.map((d) => new FormGroup({

      city: new FormControl(d.city),

      meta:this.fb.array([]),

     }))
  
    destinationSection.push(this.fb.group({

     name: [item.name, Validators.required],

     pointsOfInterests: this.fb.array(pointsofInterests),

     }))

    })
    
 })

我在如何将值修补到元数组方面遇到问题;

注:html页面已经开发

您必须找出在修补之前应将多少表单控件添加到 formArray。

该帖子可能对您有所帮助。

这个教程帮助了我

https://www.tektutorialshub.com/angular/setvalue-patchvalue-in-formarray-angular/

上面我添加的示例中的第 2 个 forEach 循环

var p:FormGroup=this.newPointOfIntrest()

然后推 p

我添加的第 3 个 forEach 循环

var m:FormGroup=this.newMeta()

然后按 m

然后它对我有用