Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

690
Vistas
Angular: acceso sin valor para control de formulario en componente con FormGroup anidado

Mi componente principal usa un FormGroup y espero que los componentes secundarios informen cambios de valor a su elemento principal. Intento resolver esto usando NG_VALUE_ACCESSOR en el componente secundario para permitir que se comporte como un campo de formulario. Como lo he entendido, uno debe usar las siguientes 4 funciones

 writeValue(value) { this.value = value; } registerOnChange(fn: any) { this.onChange = fn; } registerOnTouched(fn: any) { this.onTouch = fn; } setDisabledState?(isDisabled: boolean): void { this.isDisabled = isDisabled; }

para comportarse como un campo de formulario. Esta es mi solución actual que no funciona:

https://stackblitz.com/edit/angular-ivy-tpneik?file=src%2Fapp%2Fapp.component.ts

El error actual dice:

Error: no hay valor de acceso para el control de formulario con la ruta: 'ok -> isChecked'

El objetivo es tener un componente secundario (y posiblemente más) que pueda informar sus cambios de valor correctamente al formulario principal en el componente principal. ¿Cómo puedo abordar este problema?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Tiene un formulario separado dentro de su hijo, también está reconstruyendo su formulario hijo allí. Simplemente pase el formgroup anidado construido al niño y estará listo para comenzar. Los padres sabrán lo que está pasando en el niño.

Pase el formgroup hacia abajo como una variable:

 <div formGroupName="child"> <app-form [formGroupChild]="formGroupChild" [myArray]="myArray"></app-form> </div>

y en el niño, tome la matriz y el grupo de formularios, adjunte un [formGroup] a un div y ¡haga su magia!

 <div [formGroup]="formGroupChild"> <div class="container"> <div *ngFor="let category of myArray" [formGroupName]="category.id"> <input type="checkbox" formControlName="isChecked"> <div [style.color]="category.textColor"> {{ category.name }} </div> </div> </div> </div>

No hay necesidad de controlvalueaccessor aquí :)

Tu STACKBLITZ bifurcado

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda