@HostListener的KeyCommands不起作用[Electron,Angular]

时间:2019-09-10 15:22:20

标签: angular electron

我对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() {
      }

    }

该代码应将按键事件记录到控制台,但它什么也没做,也不会出现错误。

1 个答案:

答案 0 :(得分:0)

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

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

上面的例子应该起作用。