Angular 6 - Keydown Space на мобильном телефоне - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть input, где я слушаю событие keydown.space. Эта техника отлично работает на рабочем столе, но событие не запускается на мобильном телефоне. Мой HTML-шаблон выглядит следующим образом:

<input
    type="text"
    (keydown.space)="onAdd()"
    (keydown.backspace)="onRemoveLast()"
>

Поэтому мне нужен способ прослушать событие space key на программной клавиатуре мобильных телефонов.

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Вот что я сделал, чтобы это заработало:

HTML

<input
    [(ngModel)]="input"
    (keydown.backspace)="onRemoveLast()"
    (ngModelChange)="onChange()"
>

Машинопись

public onChange(): void {
    if (this.input.substr(-1) === ' ') this.add();
}
0 голосов
/ 17 сентября 2018

На каком «мобильном» вы его тестировали? Если это Android, как сказал Уильям Мур, возможно, проблема в том, что Android не регистрирует нажатие клавиши пробела в качестве стандарта 32.

В противном случае вы можете попробовать onkeypress + прослушивание кода клавиши на стороне JS, например:

<input
  type="text"
  onkeypress="onAdd(event)"
  (keydown.backspace)="onRemoveLast()"
>

function onAdd(event){
  if (event.keyCode === 32) ...
}
...