将值修补到 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
然后它对我有用
这里我创建了动态表单来更新表单值
我在将值修补到元数组的 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
然后它对我有用