这是我的stackblitz: https://stackblitz.com/edit/create-eez7wi?file=app/app.component.ts
基本上当我加载资源时,如果输入的技能超过1,它会填充所有期望的技能。
setResourceDTOS() {
let control = <FormArray>this.myForm.controls.resourceDTOS;
this.data.resourceDTOS.forEach((x) => {
control.push(
this.fb.group({
seniority: x.seniority,
skillDTOS: this.setResourceSkills(x),
resourceNotes: x.resourceNotes,
})
);
});
}
setResourceSkills(x) {
let arr = new FormArray([]);
x.skillDTOS.forEach((y) => {
arr.push(
this.fb.group({
skill: y.skill,
})
);
});
return arr;
}
和for循环,为资源设置数据:
for (
let currentLength = 0;
currentLength < newdata.resourceDTOS.length - 1;
currentLength++
) {
this.setResourceDTOS();
}
this.myForm.patchValue(newdata);
我如何使它也设置所有的技能?
这个问题似乎可以通过删除data
并使用newdata
来解决。另外,for
循环也不需要,可以删除。
当您修补
newdata
时,没有地方可以修补额外的技能,因为您只在表单数组中添加一个技能(使用data
创建,而不是newdata
)。在foreach
中添加控制台日志可以看到这一点。- @Andrew Allen