2017-05-29 63 views
3

我想調用一些方法,當ESC猿按鈕將被按下。我做了這樣:是否可以在特定按鈕上設置HostListener?

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

clickEscape方法都會被調用一次,當用戶點擊keybord任何按鈕。我的問題是:

是否可以設置HostListener,以便只有在檢測到ESCape按鈕時纔會調用該方法? 我在想什麼風格:

@HostListener('window:keydown["ESCAPE"]') 
someMethod() { 
    //... 
} 

有沒有類似的事件?

+0

https://stackoverflow.com/questions/41420153/angular2-triggering-host-listeners-on-a-button-click –

回答

2

你的確可以使用keydown.escape

@HostListener('window:keydown.escape') 
someMethod() { 
    //... 
} 
+0

將與'@工作HostListener('window:keydown。$ {key}')',模板字符串?不能使用他們或評論會堅果.. hehehe – SrAxi

+2

@SrAxi不,這是不可能的。在任何組件變量已知之前設置註釋(@ HostListener) – PierreDuc

+0

@PierreDuc,我可以肯定,每個瀏覽器都將以相同的方式解釋'.escape'嗎? keyCode看起來更安全 –

相關問題