ReactiveFormsModule du paquetage @angular/forms et ajoutez-les au tableau imports de votre NgModule.FormControl est l'élément de base lors de l'utilisation de formes réactives.
Pour inscrire un contrôle de formulaire, importez la classe FormControl dans votre composant et créez une nouvelle instance du
contrôle de formulaire à enregistrer en tant que propriété de classe.FormControl pour définir sa valeur initiale, qui dans ce cas est une chaîne vide.
En créant ces contrôles dans votre classe de composant, vous obtenez un accès immédiat pour écouter,
mettre à jour et valider l'état de l'entrée de formulaire.formControl.
valueChanges observable, vous pouvez écouter les modifications de la valeur de la fiche dans le modèle à
l'aide d'AsyncPipe ou dans la classe de composant à l'aide de la méthode subscribe().
value qui vous donne un instantané de la valeur actuelle.AbstractControl sous-jacente permettent de contrôler l'état du formulaire et de déterminer quand afficher
les messages lors du traitement de la validation.setValue() qui met à jour la valeur
du contrôle de formulaire et valide la structure de la valeur fournie par rapport à la structure du contrôle.setValue() pour mettre à jour
le contrôle avec sa nouvelle valeur, en remplaçant entièrement l'ancienne valeur.Nancy à l'aide de la méthode setValue().
setValue() avec un groupe de formulaires ou une instance de tableau de formulaires,
la valeur doit correspondre à la structure du groupe ou du tableau.FormGroup et FormControl depuis le package @angular/forms.profileForm et définissez-la sur une nouvelle instance de FormGroup.
Pour le profileForm, ajoutez deux instances de contrôle de formulaire avec les noms firstName et lastName.FormGroup fournit sa valeur de modèle sous forme d'objet réduit à partir des valeurs de chaque contrôle du groupe.
Une instance de groupe de formulaires a les mêmes propriétés (telles que value et untouched) et les mêmes méthodes
(telles que setValue() ) que les instances de contrôle de formulaire.
FormGroup est lié à l'élément form contenant la directive FormGroup,
créant ainsi une couche de communication entre le modèle et le formulaire contenant les entrées. L'entrée formControlName fournie par la directive FormControlName lie chaque
entrée individuelle au contrôle de formulaire défini dans FormGroup. Les contrôles de formulaire communiquent avec leurs éléments respectifs.
ProfileEditor accepte les entrées de l'utilisateur, mais dans un scénario réel, vous souhaitez capturer la valeur du formulaire et le rendre disponible
pour un traitement ultérieur en dehors du composant. La directive FormGroup écoute l'événement "submit" émis par l'élément "form" et émet un événement "ngSubmit" que vous pouvez
lier à une fonction de rappel.ngSubmit à la balise form avec la méthode onSubmit() de rappel.onSubmit() dans le composant ProfileEditor capture la valeur actuelle de profileForm.
Utilisez cette option EventEmitter pour conserver le formulaire encapsulé et pour fournir la valeur de formulaire en dehors du composant.console.warn pour consigner un message dans la console du navigateur.submit" est émis par la balise form à l'aide de l'événement DOM natif.
Vous déclenchez l'événement en cliquant sur un bouton de type "submit" (cela permet à l'utilisateur d'appuyer sur la touche "Entrée" pour soumettre le formulaire).button pour l'ajouter en bas du formulaire afin de déclencher la soumission du formulaire.profileForm n'est pas valide.
Vous n'effectuez aucune validation pour le moment, le bouton est toujours activé.ProfileEditorcomposant contenant le formulaire, ajoutez-le à un modèle de composant.ProfileEditor vous permet de gérer les instances de contrôle de formulaire pour les contrôles firstName et lastName au sein de l'instance de groupe de formulaires.

profileForm, ajoutez un ément "address" imbriqué à l'instance de groupe de formulaires.
address" à la vue contenant les champs firstName et lastName.ProfileEditor est affiché en tant que groupe, mais le modèle est décomposé pour représenter les zones de regroupement logique.
value et JsonPipe.
setValue() pour définir une nouvelle valeur pour un contrôle individuel. La méthode setValue() remplace la valeur entière du contrôle.patchValue() pour remplacer les propriétés définies dans l'objet qui ont été modifiées dans le modèle de formulaire.setValue() aident à détecter les erreurs d'imbrication dans les formulaires complexes,
tandis que patchValue() échoue silencieusement pour ces erreurs.ProfileEditorComponent, utilisez la méthode updateProfile avec l'exemple ci-dessous
pour mettre à jour firstName et adress de l'utilisateur.profileForm est mis à jour avec les nouvelles valeurs de "firstName" et "street".
street est fourni dans un objet à l'intérieur de la propriété address.
Cela est nécessaire car la méthode patchValue() applique la mise à jour à la structure du modèle.
PatchValue() met à jour uniquement les propriétés définies par le modèle de formulaire.FormBuilder fournit des méthodes pratiques pour générer des contrôles.ProfileEditor pour qu'il utilise le service de générateur de formulaire afin de créer
des instances de contrôle de formulaire et de groupe de formulaires.FormBuilder du package @angular/forms.FormBuilder est un fournisseur de solutions injectables doté du module de formulaires réactifs.
Injectez cette dépendance en l'ajoutant au constructeur du composant.FormBuilder a trois méthodes: control(), group() et array().
Il s'agit de méthodes permettant de générer des instances dans vos classes de composant, notamment des contrôles de formulaire,
des groupes de formulaires et des tableaux de formulaires.group() pour créer les contrôles profileForm.group() avec le même objet pour définir les propriétés du modèle.
La valeur de chaque nom de contrôle est un tableau contenant la valeur initiale en tant que premier élément du tableau.sync et async en tant que deuxième et troisième éléments du tableau.profil.component.ts (instances)éditeur de profil.component.ts (constructeur de formulaire)null basé sur le contrôle de validation.Validators du package @angular/forms.firstName.ProfileEditor, ajoutez la méthode Validators.required statique en tant que deuxième élément du tableau pour le contrôle firstName.required à l'élément firstName.
status actuel de l'instance de groupe de formulaires via sa propriété status.profileForm de l'interpolation.
submit" est désactivé car profileForm n'est pas valide en raison du contrôle firstName de formulaire qui est requis.
Une fois le firstName complétée, le formulaire devient valide et le bouton "submit" est activé.FormArray est une alternative à la gestion FormGroup d'un nombre quelconque de contrôles non nommés.
Comme pour les instances de groupe de formulaires, vous pouvez insérer et supprimer de manière dynamique des contrôles dans des instances de tableau de formulaire.
La valeur et l'état de validation de l'instance de tableau de formulaire sont calculés à partir de ses contrôles enfants.
Toutefois, il n'est pas nécessaire de définir une clé pour chaque contrôle par nom.
Il s'agit donc d'une excellente option si vous ne connaissez pas le nombre de valeurs enfant à l'avance.
L'exemple suivant vous montre comment gérer un tableau d'alias dans ProfileEditor.
FormArray du package @angular/forms à utiliser pour les informations de type.
Le service FormBuilder est prêt à créer une instance FormArray.
profileForm.FormBuilder.array() pour définir le tableau et la méthode FormBuilder.control() pour remplir le tableau avec un contrôle initial.getter fournit un accès facile aux alias dans l'instance de tableau de formulaires, par opposition à la répétition de la méthode profileForm.get() pour obtenir chaque instance.
L'instance de tableau de formulaire représente un nombre indéfini de contrôles dans un tableau.
Il est pratique d'accéder à un contrôle via un getter, et cette approche est facile à répéter pour des contrôles supplémentaires.AbstractControl, vous devez fournir un type explicite pour accéder à la syntaxe de la méthode
pour l'instance de tableau de formulaire.FormArray.push() insère le contrôle en tant que nouvel élément du tableau.formGroupName fournie par FormGroupNameDirective, formArrayName
lie la communication de l'instance de tableau de formulaire au modèle avec FormArrayNameDirective.
status et de la valeur du contrôle racine.