¿Cómo iterar a través de un formarray y establecer su valor en otro array en typescript?
Tengo un FormArray dentro de un formulario y el FormArray tiene un parámetro de tipo string llamado “Foo”. Intenté hacer lo siguiente:
let formArray = this.form.get("Foo") as FormArray;
let formArrayValues: {Foo: string}[]; // esto se colocará en el modelo ts para ser enviado.
No estoy seguro de cómo puedo iterar a través del FormArray, obtener el valor “Foo” y colocarlo en mi nuevo arreglo. Intenté lo siguiente:
for (let c of formArray.controls) {
formArrayValues.push(c.get("Foo"));
}
Pero parece que obtengo un error que dice que “Foo” está ausente en el tipo AbstractControl. Estoy un poco perdido aquí y busqué pero no encontré nada similar. Gracias.
davy.ai
Solución
Para iterar a través de un FormArray y obtener los valores de un parámetro específico como “Foo”, puedes usar la propiedad
value
de cada control en el FormArray.Aquí tienes un ejemplo de código para obtener los valores del parámetro “Foo” de un FormArray:
Podemos acceder a la propiedad
value
de un control, que devuelve un objeto que representa el valor del control. En este caso, como tenemos un FormArray de objetos con el parámetro “Foo”, podemos obtener el valor de “Foo” accediendo a la propiedadvalue.Foo
.El código anterior itera a través de cada control en el FormArray, obtiene el valor de “Foo” del objeto control y luego agrega el objeto con el valor de “Foo” al array
formArrayValues
.Ten en cuenta que también estamos creando el objeto con la sintaxis
{ Foo: control.value.Foo }
, asegurándonos de que la estructura del objeto coincida con el tipo esperado{Foo: string}
.Espero que esto te ayude a iterar a través de tu FormArray y obtener los valores del parámetro “Foo”.