Получить нажатой клавишу (клавиша) angular2
Можно ли узнать, какая клавиша была нажата при использовании (нажатие) в Angular 2?
например.
<input type=text (keypress)=eventHandler()/>
public eventHandler() {
//Some code
console.log(keyPressed);
}
Изменить: Кажется, мои соглашения об именах были немного отключены. Я не имел в виду AngularJS 2, я имел в виду Angular 2.0 с typescript.
Ответы
Ответ 1
Передайте $event
вашему обработчику событий. $event
- это DOM KeyboardEvent.
<input type=text (keypress)="eventHandler($event)">
eventHandler(event) {
console.log(event, event.keyCode, event.keyIdentifier);
}
Если вы знаете, какое свойство KeyboardEvent вы хотите, вы можете передать его в обработчик событий:
<input type=text (keypress)="eventHandler($event.keyCode)">
eventHandler(keyCode) {...}
Ответ 2
@Component({
selector: 'key-up3',
template: `
<input #box (keyup.enter)="onEnter(box.value)">
<p>{{value}}</p>
`
})
export class KeyUpComponent_v3 {
value = '';
onEnter(value: string) { this.value = value; }
}
Или используйте вот так.
<input #box (keyup.enter)="onSubmit(form.value)">
<form [formGroup]="form" (ngSubmit)="onSubmit(form.value)">
Ответ 3
На основе комментария, сделанного по ответу:
это не определяет все события. например, не клавиши со стрелками или не убежать. но вы можете использовать (keydown), чтобы получить все из них.
Лучшее решение для получения всех событий как backspace, так и удаления или любого другого ключа, просто используйте (ввод)
<input type=text (input)="eventHandler($event.keyCode)">
eventHandler(keyCode) {...}