Angular 6 - 移动设备上的按键 Space

Angular 6 - Keydown Space on Mobile

我有一个 input,我在其中监听 keydown.space 事件。此技术在桌面上运行良好,但事件不会在移动设备上触发。我的 HTML 模板如下所示:

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

所以我需要一种方法来监听手机软键盘上的space key事件

你在什么"mobile" 上测试过它?如果是 Android,就像 William Moore 说的,这可能是 Android 没有将空格键注册为标准 32 的问题。

否则,您可以尝试 onkeypress + 在 JS 端监听 keycode,如下所示:

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

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

这就是我为让它发挥作用所做的工作:

HTML

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

打字稿

public onChange(): void {
    if (this.input.substr(-1) === ' ') this.add();
}