La liaison de données (data binding) relie la classe et le template. C'est
ce qui rend Angular si confortable : plus besoin d'aller chercher un élément pour le modifier à la
main.
Les quatre formes
Forme
Syntaxe
Sens
Interpolation
{{ valeur }}
classe → template
Property binding
[propriete]
classe → template
Event binding
(evenement)
template → classe
Two-way binding
[(ngModel)]
dans les deux sens
Un moyen mnémotechnique : les crochets font entrer la donnée dans le template,
les parenthèses font sortir l'événement vers la classe. Les deux réunis, [()], forment ce qu'on appelle la « boîte à bananes ».
Sans crochets, disabled="boutonDesactive" passerait la chaîne de caractères
« boutonDesactive ». Avec crochets, Angular évalue l'expression. C'est une erreur très
courante au début.
Le bouton s'active tout seul dès que les conditions sont réunies : aucune ligne de code
d'affichage à écrire.
À retenir
Crochets : la donnée entre. Parenthèses : l'événement sort
Sans crochets, la valeur est traitée comme du texte
[(ngModel)] relie dans les deux sens
FormsModule est obligatoire pour ngModel
Exercices d'application
Exercice 1. CompteurCréez un compteur avec trois boutons : +1, −1 et Réinitialiser. Le bouton −1 doit se désactiver quand la valeur atteint 0.
Exercice 2. Aperçu en directUn champ de saisie et, en dessous, le texte saisi affiché en majuscules et en temps réel.
Exercice 3. ValidationUn formulaire nom + e-mail dont le bouton d'envoi ne s'active que si les deux champs sont remplis et que l'e-mail contient un « @ ».
Faites-les dans un vrai projet : c'est en pratiquant que l'on retient.