【问题标题】:@HostListener for KeyCommands not working [Electron, Angular]用于 KeyCommands 的 @HostListener 不起作用 [Electron,Angular]
【发布时间】:2019-12-15 20:02:42
【问题描述】:

我对 Electron 和 Angular 还很陌生,正在尝试编写一个小应用程序。在我的应用程序中,我想捕捉一些通用的键盘命令。为了捕捉事件,我编写了一个指令,但无论我做什么,应用程序都不会对任何用户输入做出反应。这可能是使用角度和电子的问题,还是我在使用角度时犯了一个简单的错误?

  • 指令在应用模块中声明
  • 指令附加到特定组件(简单的单页)
    import {Directive, HostListener} from '@angular/core';


    @Directive({
      selector: '[appUserinputControl]'
    })

    export class UserinputControlDirective {

      @HostListener('document:keydown', ['$event']) onKeyDown(res) {
        console.log('Key', res);
      }

      constructor() {
      }

    }

代码应该将 keydown-events 记录到控制台,但它什么也不做,也没有出现错误。

【问题讨论】:

    标签: angular electron


    【解决方案1】:

    我认为您缺少的一点是您使用了 document.keydown 而不是 window.keydown。

        @HostListener('window:keydown', ['$event'])
        keyEvent(event: KeyboardEvent) {
       console.log(event)
    }
    

    上面的例子应该可以工作。

    【讨论】:

      猜你喜欢
      • 2021-04-07
      • 2017-06-21
      • 2017-01-29
      • 2021-09-18
      • 1970-01-01
      • 2020-02-03
      • 1970-01-01
      • 2020-03-27
      • 2017-11-08
      相关资源
      最近更新 更多