Notas
<h4>FormControl</h4>Cada uno de los campos del formulario.
<h4>FormGroup</h4>Conjunto de campos (FormControl)
<h4>FormBuilder</h4>Servicio, requiere inyección de dependencias en el constructor.
Conoce la importancia de los formularios para tu sitio web
¿Por qué aprender Angular Forms?
Presentación del proyecto: tour por los formularios de Platzi Store
Novedades de Angular 10: cómo migrar proyectos de Angular 8 o 9 a la versión 10
Primeros pasos con Angular Forms
Template Forms vs. Reactive Forms
Dominando el FormControl y sus estados
Cómo usar inputs de texto y la importancia del type
Manejo y binding de selects y selects múltiples
Manejo y binding de inputs radio y checkbox
Aplica validaciones a un FormControl
Integración y validaciones con CSS para mostrar errores
Descubre todas las validaciones de Angular Forms
Usando FormGroup para agrupar multiples campos
Reactive Forms con FormBuilder
Los 11 validadores de Angular (y expresiones regulares)
Manejando múltiples FormsGroups
Usando componentes de Angular Material
Errores comunes de usabilidad en formularios
Validaciones personalizadas: mejorando nuestro formulario de registro
Implemeta validaciones avanzadas en PlatziStore
Cómo hacer validaciones grupales en Angular Forms
Validaciones condicionadas y reactividad a variaciones en la UI
Proyecto: formulario para crear categorías de productos
Proyecto: conectando nuestro formulario y la API
Proyecto: subir imágenes a Firebase Storage
Validaciones asincrónicas
PatchValue: crear vs. editar
Proyecto: creando el método de editar categorías
Construye formularios dinámicos conectando una API
Smart vs. dumb components: un patrón para dividir responsabilidades
Implementando smart y dumb components en PlatziStore
Proyecto: mejorando nuestro formulario de productos
Select dinámico: carga opciones desde una API
Select dinámico: trabajando con objetos
¿Cómo crear campos on demand? Forms dinámicos con FormArray
Estrategias avanzadas y optimización de formularios
Crea tu propia librería de componentes con CVA o Control Value Accesor
Crea un buscador de gifs usando la API de Giphy
Optimiza un input de búsquedas con RxJS y debounce
Examina la accesibilidad de tus formularios
Siguientes pasos en tu carrera de desarrollo web profesional con Angular
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 11
Preguntas 5
Cada uno de los campos del formulario.
<h4>FormGroup</h4>Conjunto de campos (FormControl)
<h4>FormBuilder</h4>Servicio, requiere inyección de dependencias en el constructor.
los ultimos videos parece que se cortan o solo me pasa a mi?, el sonido esta bien, pero la imagen parece que salta cada x segundos
Se está pegando el video.
El audio esta bien, el video esta lagueado…
¿cómo subscribirse a un solo field usando formGroup?
this.form.get("firstname").valueChanges.subscribe(x => {
console.log(x)
})
Una forma un poco menos trabajosa de controlar los errores es creando un método, que incluso se puede tener en una clase abstracta para obtener los errores que tiene cierto control de la siguiente forma
export class GeneralValidators {
public hasError = (
form: FormGroup,
controlName: string,
errorName: string
) => {
return form.controls[controlName].hasError(errorName);
};
}
de esta forma si inyectamos esta clase en nuestro componente solo debemos usar el método para obtener el error de una validacion de la siguiente forma
<mat-error
*ngIf="generalValidators.hasError(form, 'required')">
Required Field
</mat-error>
De esta forma en una manera mas resumida podemos obtener los errores de un formgroup y aplicarlo en directivas en el template de una manera mas resumida y ordenada
Builder adopted!
es mucho mas cómodo, hermoso código 😃
Buena práctica de validación de forms
Les ha salido este error al colocar las validaciones?
Error TS2531 object is possibly null in angular reactive forms
Lo solucioné de esta forma
"forceConsistentCasingInFileNames": false,
"strict": false,
"noImplicitReturns": false,
"noFallthroughCasesInSwitch": false,
...
"angularCompilerOptions": {
"strictInjectionParameters": false,
"strictInputAccessModifiers": false,
"strictTemplates": false
}
Me gusto mucho esta clase, no sabia que se podría usar de manera mas limpia los formularios con el formBuilder.
Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.