Estoy usando Angular 8 con formularios reactivos.
En ngOnInit , estoy llamando a la función generateForm y patchDatainForm simultáneamente, y si patchData contiene valor, entonces quiero enviar valores en formArray.
constructor(private fb: FormBuilder) { this.dataCollectionForm = this.fb.group({ items: this.fb.array([]) }); } ngOnInit() { this.generateForm(); this.patchDatainForm(); } createBatchForm(line, type) { return this.fb.group({ makeLineId: [type.makeLineId], processTechType: [type.processTechType], avgBct: ['', [Validators.required]], bestBct: ['', [Validators.required]], avgCapacity: [''] }); } itemTypes(): FormArray { return this.dataCollectionForm.get("items") as FormArray; } generateForm() { this.itemTypes().push(this.createBatchForm('Red', 'Batch')); }Tengo debajo de los datos del backend para parchear las matrices. Quiero parchear la matriz de tipos en mis campos de formulario.
patchDatainForm() { const patchData = [{ makeLineName: 'Red', types: [{ makeLineId: 6, processTechType: "batch", avgBct: 50, bestBct: 200, avgCapacity: 40 }, { makeLineId: 5, processTechType: "batch", avgBct: 11, bestBct: 10, avgCapacity: 10 }] } ]; this.dataCollectionForm.patchValue(patchData); } Comúnmente parcheo los valores con este método this.dataCollectionForm.patchValue(patchData); , pero no funciona para la matriz de forma dinámica.
Cualquier ayuda es apreciada. Gracias de antemano