Lorsque vous voulez gérer vos formulaires depuis le code plutôt que de vous reposer uniquement sur le template, les reactive forms sont la solution.
Note : Pour en savoir plus, consultez les reactive forms dans le guide approfondi.
Dans cette activité, vous allez apprendre à mettre en place des reactive forms.
-
Importer le module
ReactiveFormsDans
app.ts, importezReactiveFormsModuledepuis@angular/formset ajoutez-le au tableauimportsdu composant.import { ReactiveFormsModule } from '@angular/forms'; @Component({ selector: 'app-root', template: ` <form> <label>Name <input type="text" /> </label> <label>Email <input type="email" /> </label> <button type="submit">Submit</button> </form> `, imports: [ReactiveFormsModule], }) -
Créer l'objet
FormGroupavec des FormControlsLes reactive forms utilisent la classe
FormControlpour représenter les contrôles de formulaire (par exemple, les champs de saisie). Angular fournit la classeFormGroup, qui regroupe des contrôles de formulaire dans un objet pratique et facilite la gestion des formulaires volumineux pour les développeurs.Ajoutez
FormControletFormGroupà l'import depuis@angular/formsafin de pouvoir créer un FormGroup pour chaque formulaire, avec les propriétésnameetemailen tant que FormControls.import {ReactiveFormsModule, FormControl, FormGroup } from '@angular/forms'; ... export class App { profileForm = new FormGroup({ name: new FormControl(''), email: new FormControl(''), }); } -
Lier le FormGroup et les FormControls au formulaire
Chaque
FormGroupdoit être rattaché à un formulaire à l'aide de la directive[formGroup].De plus, chaque
FormControlpeut être rattaché avec la directiveformControlNameet associé à la propriété correspondante. Mettez à jour le template avec le code de formulaire suivant :<form [formGroup]="profileForm"> <label> Name <input type="text" formControlName="name" /> </label> <label> Email <input type="email" formControlName="email" /> </label> <button type="submit">Submit</button> </form> -
Gérer les mises à jour du formulaire
Pour accéder aux données du
FormGroup, il suffit d'accéder à la valeur duFormGroup. Mettez à jour letemplatepour afficher les valeurs du formulaire :... <h2>Profile Form</h2> <p>Name: {{ profileForm.value.name }}</p> <p>Email: {{ profileForm.value.email }}</p> -
Accéder aux valeurs du FormGroup
Ajoutez à la classe du composant une nouvelle méthode appelée
handleSubmit, que vous utiliserez ensuite pour gérer la soumission du formulaire. Cette méthode affichera les valeurs du formulaire, auxquelles vous pouvez accéder depuis le FormGroup.Dans la classe du composant, ajoutez la méthode
handleSubmit()pour gérer la soumission du formulaire.handleSubmit() { alert( this.profileForm.value.name + ' | ' + this.profileForm.value.email ); } -
Ajouter
ngSubmitau formulaireVous avez accès aux valeurs du formulaire ; il est temps de gérer l'événement de soumission et d'utiliser la méthode
handleSubmit. Angular fournit un event handler dédié à cet usage, appeléngSubmit. Mettez à jour l'élément form pour appeler la méthodehandleSubmitlors de la soumission du formulaire.<form [formGroup]="profileForm" (ngSubmit)="handleSubmit()"></form>
Et voilà, vous savez utiliser les reactive forms dans Angular.
Excellent travail sur cette activité. Continuez pour découvrir la validation des formulaires.