我正在使用以下方法检测页面上的按键.我的计划是检测何时按下Esc键,如果是,则运行一个方法.目前我只想记录下按下了哪个键.但是,从未检测到Esc键.

@HostListener('document:keypress', ['$event'])
handleKeyboardEvent(event: KeyboardEvent) {
  console.log(event);
  let x = event.keyCode;
  if (x === 27) {
      console.log('Escape!');
  }
}

推荐答案

try 使用keydownkeyup事件捕获Esc键.本质上,你可以用document:keydown.escape代替document:keypress:

@HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {
    console.log(event);
}

Angular相关问答推荐

垫-菜单未以17.2.3角显示

带迭代的Angular 内容投影

在Angular 为17的独立零部件中使用@NGX-平移

Angular 16独立依赖注入问题

升级到 Ng 16 - npm 错误!对等依赖冲突:@angular/compiler-cli@16.2.1

如何在 Angular 库中将依赖项声明为可选?

如何在 Angular14 中创建带有验证的自定义输入组件?

无法在 Angular 中使用 CryptoJS 正确加密

Angular 13 - 使用 PUT 时出现 400 错误(错误请求)

在 Angular material 表单元格中渲染 html

您如何链接需要多个先前可观察对象的依赖订阅

console.log 返回 api 数据但 ERROR TypeError: Cannot read properties of undefined reading 'name'

无法将项目从 Angular 13 更新到 14

带有嵌套表单数组的 Angular react式表单

找不到模块'@angular/compiler'

angular 2模板使用console.log

Lint 错误:实现生命周期挂钩接口

需要选中一个复选框

调用子组件的方法

如何在Angular 2 中为异步验证器添加debounce 时间?