Emanuel Weinsjö Emanuel Weinsjö - 6 months ago 171
TypeScript Question

Angular 2 Global Key detection

How can I bind a keyevent listener on the document instead of an specific inputfield in Angular 2 using RC5?

For example:

I Know this "bind it to an element"

<input (keypress)="onKeyDown($event)" [(ngModel)]="something" type="text">

How can I bind it to the document for example

<div (keypress)="onKeyDown($event)"> <input /> ... </div>

@HostListener('window:keydown', ['$event'])
onKeyDown(event) {

You can also do

<div (window:keypress)="onKeyDown($event)">


<div (document)="onKeyDown($event)">

Declarative filtering like

<div (window:keydown.alt.a)="onKeyDown($event)">

is currently not supported for global listeners

See also https://github.com/angular/angular/issues/7308