可以在特定按钮上设置 HostListener 吗?

Jar*_* K. 3 angular

我想在按下ESC ape 按钮时调用一些方法。我是这样做的:

@HostListener('window:keydown', ['$event'])
clickEscape(event: KeyboardEvent) {
    //if ESC was pressed
    if(event.keyCode === 27) {
        this.someMethod();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当用户单击键盘上的任何按钮时,每次都会调用clickEscape方法。我的问题是:

是否可以设置 HostListener 以便仅在检测到 ESCape 按钮时调用该方法?我正在思考一些风格上的事情:

@HostListener('window:keydown["ESCAPE"]')
someMethod() {
    //...
}
Run Code Online (Sandbox Code Playgroud)

有类似的活动吗?

Pie*_*Duc 5

你确实可以使用keydown.escape:

@HostListener('window:keydown.escape')
someMethod() {
    //...
}
Run Code Online (Sandbox Code Playgroud)

  • @SrAxi 不,那是不可能的。在知道任何组件变量之前设置注释(`@HostListener`) (2认同)