Escolar Documentos
Profissional Documentos
Cultura Documentos
1 Desacople
2 Form Group
En este paso tenemos a disposición varias sobrecargas para configurar con mayor
o menor detalle el objeto de control.
Para empezar es fácil asignar valores por defecto. Incluso es un buen momento
para modificar o transformar datos previos para ajustarlos a cómo los verá el
usuario, sin necesidad de cambiar los datos de base.
Mientras tanto en la vista html… Este trabajo previo y extra que tienes que hacer
en el controlador se recompensa con una mayor limpieza en la vista. Lo único
necesario será asignar por nombre el elemento html con el control typescript que
lo gestionará.
Para ello usaremos dos directivas que vienen dentro del módulo reactivo son
[formGroup]="objetoFormulario" para el formulario en su conjunto, y
formControlName="nombreDelControl" para cada control.
1 <form [formGroup]="form">
2 <label for="email">E-mail</label>
3 <input name="email"
4 formControlName="email"
5 type="email" />
6 <label for="name">Name</label>
7 <input name="name"
8 formControlName="name"
9 type="text" />
10 <label for="registeredOn">Registered On</label>
11 <input name="registeredOn"
12 formControlName="registeredOn"
13 type="date" />
14 <label for="password">Password</label>
15 <input name="password"
16 formControlName="password"
17 type="password" />
18 </form>
2 Validación de formularios
1 this.form = this.formBuilder.group({
2 email: [
3 'tutorial@angular.io',
4 [ Validators.required, Validators.email ]
5 ],
6 name: [
7 this.name.toLowerCase(),
8 Validators.required
9 ],
10 registeredOn : new Date().toISOString().substring(0, 10)
11 password: [
12 '',
13 [ Validators.required, Validators.minLength(4) ]
14 ]
15 });
3 Estados
Al establecer una o más reglas para uno o más controles activamos el sistema de
chequeo y control del estado de cada control y del formulario en su conjunto.
4 Valor
Este sistema de gestión de los controles del formulario oculta la parte más valiosa
(el valor que se pretende almacenar) en la propiedad value del formulario.
Contendrá un objeto con las mismas propiedades usadas durante la definición del
formulario, cada una con el valor actual del control asociado.
1 <form [formGroup]="form"
2 (submit)="onSubmit(form.value)">
3 <label for="email">E-mail</label>
4 <input name="email"
5 formControlName="email"
6 type="email" />
7 <button type="submit"
8 [disabled]="form.invalid">Save</button>
9 </form>
1 public onSubmit(formValue: any) {
2 console.log(formValue);
3 // { email:'tutorial@angular.io' }
4}