Ответ 1
Вы можете сделать что-то вроде этого:
@Component({
host: {
'(document:keyup)': '_keyup($event)',
'(document:keydown)': '_keydown($event)',
},
})
export class Component {
private _keydown(event: KeyboardEvent) {
let prevent = [13, 27, 37, 38, 39, 40]
.find(no => no === event.keyCode);
if (prevent) event.preventDefault();
}
private _keyup(event: KeyboardEvent) {
if (event.keyCode === 27) this.close();
else if (event.keyCode === 13) ...;
else if (event.keyCode === 37) ...;
else if (event.keyCode === 38) ...;
else if (event.keyCode === 39) ...;
else if (event.keyCode === 40) ...;
// else console.log(event.keyCode);
}
}
Команда BTW, Angular имела несколько интересных идей о событиях с клавиатурой, не знаю, каков статус этого на данный момент. Это даже возможно он работает, не пробовал себя:)