Come faccio a rilevare qualsiasi pressione di un tasto sul angolare 2 (ad esempio, non necessariamente in una casella di input)Come rilevare la pressione di un tasto in Angular 2?
Attualmente sono riuscito a farlo usando il seguente codice:
import {Component, HostListener} from "@angular/core";
@Component(<any>{
selector: 'foo',
template: `<h1>Foo</h1>`,
})
export class FooComponent {
@HostListener('document:keypress', ['$event'])
keypress(e: KeyboardEvent) {
console.log("Key Up! " + e.key);
}
}
Il codice di cui sopra riesce a funzionare bene per la maggior parte dei personaggi, ad es alfanumerico, punteggiatura, simboli, ecc
Il problema è che questo metodo non viene eseguito quando si premono i tasti come MAIUSC, CTRL, F1 ... F12, Tab, ecc ALT
È necessario utilizzare ('document: keydown') invece di premere il tasto per ottenere shift, ctrl, ecc ... –
Funziona! Per favore scrivi il tuo commento come risposta, quindi posso accettarlo. –
Potrebbe essere aggiunto alla risposta (docu): https://angular.io/docs/ts/latest/guide/user-input.html – bene