Angulaire 2 HostListener keypress détecter la touche d'échappement?
J'utilise la méthode suivante pour détecter les touches sur une page. Mon plan est de détecter le moment où la touche échap et exécuter une méthode si. Pour le moment, j'essaie juste de consigner quelle touche est enfoncée. Cependant, la clé D'échappement n'est jamais détectée.
@HostListener('document:keypress', ['$event'])
handleKeyboardEvent(event: KeyboardEvent) {
console.log(event);
let x = event.keyCode;
if (x === 27) {
console.log('Escape!');
}
}
22
demandé sur
Jeremy Parkhurst
2017-02-20 18:48:15
4 réponses
Essayez-le avec un événement keydown
ou keyup
pour capturer la clé Esc
. En substance, vous pouvez remplacer document:keypress
par document:keydown.escape
:
@HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {
console.log(event);
}
28
répondu
Sawant
2018-09-25 09:42:44
Cela a fonctionné pour moi, en utilisant le code suivant:
const ESCAPE_KEYCODE = 27;
@HostListener('document:keydown', ['$event']) onKeydownHandler(event: KeyboardEvent) {
if (event.keyCode === ESCAPE_KEYCODE) {
// ...
}
}
Ou de manière plus courte:
@HostListener('document:keydown.escape', ['$event']) onKeydownHandler(evt: KeyboardEvent) {
// ...
}
27
répondu
Gaurav Pandvia
2017-06-30 07:03:05
Keydown et keyup semblent fonctionner: http://embed.plnkr.co/VLajGbWhbaUhCy3xss8l/
3
répondu
Lucas Tétreault
2017-02-20 16:01:37
Approche Moderne
@HostListener('document:keydown', ['$event']) onKeydownHandler(event: KeyboardEvent) {
if (event.key === "Escape") {
// Do things
}
}
3
répondu
Gibolt
2017-12-03 01:11:11