`(keyup.backspace)` 无法捕获 'shift + backspace'

Lea*_*ess 2 keyup angular angular9

我试图捕获表单输入字段中发生的每个删除和退格键,并且我按照以下方式执行此操作:

<input (keyup.enter)="sendData()" (keyup.delete)="clear()" (keyup.backspace)="clear()">
Run Code Online (Sandbox Code Playgroud)

它确实适用于退格键,但与左移或右移结合使用时则无效。我该如何承保这些案件?

Mic*_*l D 5

我不确定为什么组合键不起作用。我猜这些Ctrl组合效果不太好。因此,与此同时,您可以使用组合键码作为解决方法。

模板

<input (keyup)="onKeyup($event)">
Run Code Online (Sandbox Code Playgroud)

控制器

onKeyup(event: KeyboardEvent) {
  const key = event.keyCode || event.charCode;
  if (key === 13) {               // enter (cr)
    sendData();
  } else if (
    key === 8 || key === 46 ||    // backspace or delete
    (key === 8 && 17) ||          // backspace + ctrl
    (key === 8 && 16) ||          // backspace + shift
    (key === 46 && 17)            // delete + ctrl
  ) {
    clear();
  }
}
Run Code Online (Sandbox Code Playgroud)

工作示例:Stackblitz