Tengo un FormArray y necesito iterar a través de cada uno de sus miembros.
Veo que hay un método de get en los documentos , pero no veo dónde obtener las claves, ni siquiera la longitud.
¿Cómo itero un FormArray?
Tiene controls de propiedad en FormArray que es una matriz de objetos AbstractControl . Consulte la documentación específica para FormArray y verá que también heredan de AbstractControl como el FormControl que publicó.
Tenga en cuenta que en la matriz de controles puede volver a tener dentro de los objetos FormArray o FormGroup además de los objetos FormControl porque puede haber grupos o matrices anidados.
Aquí hay un ejemplo simple:
for (let control of formArray.controls) { if (control instanceof FormControl) { // is a FormControl } if (control instanceof FormGroup) { // is a FormGroup } if (control instanceof FormArray) { // is a FormArray } }Resolví este problema recorriendo formArray.controls :
formArray.controls.forEach((element, index) => { ... });Si alguien necesita ayuda para iterarlos en la plantilla (como hice yo), puede hacerlo.
En este caso tenemos FormArray donde cada hijo es FormControl
get myRows(): FormControl[] { return (this.<your form group>.get('<field name>') as FormArray).controls as FormControl[]; }y en plantilla
*ngFor="let row of myRows"