Подтвердить что ты не робот

Получить нажатой клавишу (клавиша) angular2

Можно ли узнать, какая клавиша была нажата при использовании (нажатие) в Angular 2?

например.

<input type=text (keypress)=eventHandler()/>

public eventHandler() {
    //Some code
    console.log(keyPressed);
}

Изменить: Кажется, мои соглашения об именах были немного отключены. Я не имел в виду AngularJS 2, я имел в виду Angular 2.0 с typescript.

4b9b3361

Ответ 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) {...}