Angular 4 dynamiskt formulär patchvalue en array
Jag har ett dynamiskt formulär baserat på Angular-dokumentationen, jag har en funktion som låter användaren ladda deras sparade formulär. För närvarande kan jag patcha värdena för andra formulärfält som textfält och radioknapp men jag kan inte göra det på en array eftersom dess värde är en array. Jag har följande kod
if(value instanceof Array){
value.forEach((subVal, index)=>{
let a = subVal.value
this.form.controls[key].patchValue({index,a})
})
//
}else{
this.form.controls[key].patchValue(value);
}
Svar #1
Jag skulle rekommendera att skapa en funktion och göra formuläret där. När du sparar posten eller skapar den, bör du kalla på funktionen.
Om du bara vill uppdatera ett värde kan du använda .patchValue()
Så här:
createForm(data: any){
let newFormArray: FormGroup[] = [];
for(let i = 0; i > data.length; i++){
newFormArray.push(this.fb.group({
id: data[i].id,
name: data[i].name
}));
}
this.form = this.fb.group({
array: this.fb.array(newFormArray)
})
}
