Estoy trabajando con una forma compleja en angular y necesito ayuda. déjame explicarte mi escenario en detalle.
Tengo un formArray como este:
let slides = new FormArray([]); slides.push(getNewSlide()) slides.push(getNewSlide()) slides.push(getNewSlide()) slides.push(getNewSlide()) function getNewSlide() { return new FormGroup({ name: new FormControl("", [Validators.required]), image: new FormControl("", [Validators.required]) }) }El formulario anterior se verá así:
slides = [ { name: "ram", image: "a.png" }, { name: "shyam", image: "b.png" }, { name: "", image: "c.png" }, <== here is error. name is required so index should be 2 { name: "ghanshyam", image: "d.png" }, ] Quiero encontrar el índice del formulario de FormArray que contiene algún error, pero no sé cómo hacerlo. Una cosa importante es que este formulario se puede anidar. como un FormGroup puede contener otro FormGroup o FormArray
alguien lo sabe para escanear en profundidad todo el formulario y encontrar el índice del primer lugar de error (índice de formulario), luego responda aquí. Apreciaré tus ideas.
Gracias.
Puede recorrer los controles de formArray y verificar si hay errores. Como esto:
findFirstInvalidControlInFormArray() { const index = (this.slides as FormArray).controls.findIndex( (control) => control.invalid ); console.log(index); }Si el índice es -1 significa que todos los controles son válidos.