Formularios
Tipos de Formularios
Template Forms
Son formularios controlados por modelo
El modelo basado en plantillas
Angular crea modelos como FormGroups y FormControls
Directivas de Angular NgForm y NgModel
Reactive Forms
Mucho mas potentes y mejor rendimiento
Basados en Observables
Mejora el tipo de validación de los datos
Se usa para Formularios complejos
FormControl
Es la pieza mas atómica de un formulario reactivo.
Para poder utilizarlo se necesita importar el módulo ReactiveFormsModule, en el modulo principal
import { ReactiveFormsModule } from '@angular/forms';
@NgModule({
declarations: [ ... ],
imports: [
...
ReactiveFormsModule,
...
],
providers: [ ... ],
bootstrap: [AppComponent]
})
export class AppModule { }Para usarlo dentro de un componente
Manejo y binding de selects y selects múltiples
Para setear por defecto el valor del select que utiliza ngValue, se puede usar por ejemplo:
Con múltiple
Y observable
Manejo y binding de inputs radio y checkbox
Aplica validaciones a un FormControl
La clase FormControl recibe aparte del valor, puede recibir una o varias validaciones sincronas y asíncronas.
una mala préctica es mostrar el error desde el antes de utilizar el input para esto podemos usar la propiedad touched.
https://angular.io/api/forms/Validators
FormGroup
Un FormGroup es un grupo de FormContols y sirve para manejar todo el formulario, al igual que el FormControl tiene validaciones el FormGroup también pero a nivel de todo el form.
FormBuilder
Con FormBuilder se tiene una sintaxis un poco mas amigable
Multiples FormGroups
Sirve para agrupar campos de formulario con su validaciones independientes.
Validaciones personalizadas
Las validaciones grupales dependen de uno o mas campos del mismo formulario y lo validan todo.
Validaciones asincrónicas
Un ejemplo sería al intentar crear una categoría duplicada
PatchValue
Sirve para setear todos los datos de un formulario en una sola sentencia, los datos deben de estar en formato JSON
Agregar campos en tiempo de ejecución
Un formBuilder.array puede contener formBuilder.group o new FormControl.
Uso de ViewContainerRef y Componentes Dinámicos en Angular
ViewContainerRef y Componentes Dinámicos en AngularServicio para manejar el modal
Contenedor del modal
Componente modal dinámico
Usando el modal dinámico
Last updated