Syntaxe
<element ng-keydown="expression"></element>
|
Paramètres
Nom |
Description |
element |
Ce paramètre permet d'indiquer une balise. |
expression |
Ce paramètre permet d'indiquer une expression a exécuter quand une touche est enfoncé. |
Description
Cette directive permet d'indiquer qu'un comportement ou un événement doit être déclencher lorsqu'une touche est enfoncé.
Remarques
- Gestion des événements clavier : La directive ng-keydown permet de capturer les événements keydown (appui sur une touche) directement dans un
élément HTML. Elle est souvent utilisée pour réagir instantanément à l'entrée utilisateur via le clavier, comme la navigation
ou la validation d'une action. Par exemple, on peut déclencher une fonction lorsque l'utilisateur appuie sur une touche spécifique.
- Expression AngularJS associée : Avec ng-keydown, une expression AngularJS est évaluée à chaque événement keydown. Cela signifie que
vous pouvez appeler des fonctions, mettre à jour des variables ou modifier le modèle en réponse à un appui de touche. Par exemple, <input ng-keydown="onKeydown($event)">
exécute la fonction onKeydown avec l'événement comme paramètre.
- Accès à l'objet événement : L'objet $event est accessible dans l'expression liée à ng-keydown, ce qui permet de récupérer des informations sur
la touche appuyée et d'autres détails. Par exemple, $event.keyCode ou $event.key peut être utilisé pour identifier la touche exacte, facilitant ainsi la création
de raccourcis clavier ou d'actions contextuelles.
- Portée limitée : ng-keydown ne capte que les événements clavier se produisant sur l'élément auquel elle est appliquée. Si vous souhaitez écouter des
événements sur tout le document ou la fenêtre, vous devrez utiliser un gestionnaire global via un service comme $document ou $window.
- Compatibilité avec d'autres directives : ng-keydown peut être combinée avec d'autres directives comme ng-model ou ng-repeat. Cela permet,
par exemple, de modifier dynamiquement une liste ou de mettre à jour un champ d'entrée en réponse à des événements clavier, tout en utilisant des modèles bidirectionnels.
- Prévention des comportements par défaut : Vous pouvez empêcher le comportement par défaut d'un événement clavier en appelant $event.preventDefault() dans
l'expression. Cela est particulièrement utile pour éviter des actions indésirables, comme le défilement d'une page lors de l'appui sur les touches fléchées ou l'envoi d'un
formulaire avec la touche Enter.
- Performances et filtrage des événements : Dans des scénarios où de nombreux événements keydown sont déclenchés rapidement (par exemple, lors de la saisie
continue), il est conseillé d'implémenter un filtrage. Vous pouvez utiliser des conditions dans l'expression AngularJS pour exécuter du code uniquement pour des touches
spécifiques, réduisant ainsi les impacts sur les performances.
- Différences entre keydown, keypress et keyup : La directive ng-keydown est souvent comparée à ng-keypress et ng-keyup.
Contrairement à ng-keypress, ng-keydown est déclenchée dès que la touche est enfoncée, avant même qu'un caractère soit généré. Cela la rend idéale pour les actions
nécessitant une réponse instantanée, comme la navigation ou les interactions en temps réel.
Dernière mise à jour : Dimanche, le 9 décembre 2018