En Angular, ControlContainer
permite gestionar formularios anidados dentro de formularios principales, facilitando la comunicación entre componentes y la reutilización de formularios. Es útil cuando se necesita dividir un formulario grande en componentes más pequeños y mantener su estado sincronizado.
ControlContainer
en Angular?
ControlContainer
es un servicio de Angular que proporciona acceso al control de formulario padre desde un componente hijo. Se utiliza principalmente en formularios reactivos cuando se desea que un componente hijo participe en la validación y estructura del formulario principal.
ControlContainer
Para usar ControlContainer
, se inyecta en el componente hijo y se vincula a un FormGroup
definido en el componente padre.
parent.component.ts
)
Define un FormGroup
y usa el selector del componente hijo dentro del formulario.
import { Component } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
@Component({
selector: 'app-parent',
template: `
<form [formGroup]="form">
<app-child formGroupName="user"></app-child>
<button type="submit">Enviar</button>
</form>
`,
})
export class ParentComponent {
form: FormGroup;
constructor(private fb: FormBuilder) {
this.form = this.fb.group({
user: this.fb.group({
name: [''],
email: ['']
})
});
}
}
child.component.ts
)
Usa ControlContainer
para conectarse al FormGroup
del padre.
import { Component } from '@angular/core';
import { ControlContainer, FormGroup } from '@angular/forms';
@Component({
selector: 'app-child',
template: `
<div [formGroup]="form">
<label>Nombre: <input formControlName="name"></label>
<label>Email: <input formControlName="email"></label>
</div>
`,
})
export class ChildComponent {
get form(): FormGroup {
return this.controlContainer.control as FormGroup;
}
constructor(private controlContainer: ControlContainer) {}
}
Propiedad/Servicio | Descripción |
---|---|
ControlContainer
|
Permite que un componente hijo acceda al formulario padre. |
formGroupName
|
Vincula el componente hijo a un grupo de controles dentro del FormGroup del padre.
|
FormGroup
|
Estructura que gestiona un conjunto de controles de formulario. |
Jorge García
Fullstack developer