1 回答
TA贡献1943条经验 获得超7个赞
问题似乎 patchValue 无法填充表单数组。您可以使用push()像常规数组一样填充表单数组。
假设您的 this.qualificationData 是一个包含许多“expertsQualification”(数组类型)的数组,并且类/接口 ExpertsQualification 具有属性“school”、“level”、“specialization”和“passed_year”,您可以执行以下操作:
(this.educationAndExperienceForm.controls.educationForm as FormArray).reset(); //reset the FormArray
this.qualificationData.forEach(x => {
(this.educationAndExperienceForm.controls.educationForm as FormArray)
.push(this.fb.group({
school: [x.school, Validators.required],
degree: [x.degree, Validators.required],
specialization: [x.specialization, Validators.required],
passed_year: [x.passed_year, Validators.required]
});
};
..这样您就可以循环遍历数组,并为每个元素将表单组推送到表单数组。请注意,将其转换为 FormArray 非常重要,例如
(this.educationAndExperienceForm.controls.educationForm as FormArray)
如果你不这样做,它将保留为 AbstractControl,并且你将无法使用数组函数,如推、拉等。
添加回答
举报