首页 > 解决方案 > 为什么我的事件变量在输入时未定义?

问题描述

HTML:

<input (input)="test(1, $event)">

打字稿:

test(index: number, event?) {
    console.log(event);
}

我正在尝试查看用户是否在输入上按下退格键,但我无法使用 $event 变量获取任何用户输入。我究竟做错了什么?

标签: angulartypescript

解决方案


使用 keydown / keypress/ keyup键盘事件来识别用户与键盘的交互。

Angular 事件绑定响应任何 DOM 事件。keydown 事件的示例用法:

  <input (keydown)="onKeydown($event)">

onKeydown(event) {
  console.log("event.key:" + event.key)
  if (event.key === "Backspace") {
    console.log(event);
  }
}

其他选项,触发特定键的 keydown 事件。在下面的示例中,事件仅在backspace按下时才会触发。

<input (keydown.backspace)="onKeydownBackspace($event)">

onKeydownBackspace(event) {
  console.log("event.key:" + event.key)
}

推荐阅读