2017-05-09 88 views
0

我想捕獲所有的鍵盤事件我的autocomplete指令在角2中。我已經將它分爲3種不同類型的事件。keyup/keydown vs輸入事件 - angular 2

1)KEYUP/KEYDOWN - >空間,向上箭頭,arrowdown,輸入,逃生

 @HostListener('window:keyup', ['$event']) 
     keyDownEvent(event: KeyboardEvent) { 

switch (event.code) { 
     // keycode 32 
     case "Space" : 
     //handle space event 
     break; 

     //keycode 38 
     case "ArrowUp": 
     //handle arrow up event 
     break; 

     //keycode 40 
     case "ArrowDown": 
     //handle arrow down event 
     break; 

     //keycode 13 
     case "Enter": 
     //handle enter 
     break; 

     //keycode 27 
     case "Escape": 
     //handle escape event 
     break; 

     default : 
     break; 
    } 
     } 

2)模糊

@HostListener('blur', ['$event']) 
    bluEventHandler(event: any){ 
} 

3)輸入(所有其它鍵盤上的鍵除了在#1和#2中提到的內容,如az,Az,特殊字符等)

?????

我不知道如何捕捉輸入事件。我想將我的角碼角2,這是它的外觀在角1

$(this.element).bind("keydown", function (event) { 
} 
$(this.element).bind("input", function (event) { 
} 
$(this.element).bind("blur", function (event) { 
} 
+3

應該工作相同。有什麼問題? –

+0

更新問題 – user911

+0

'@HostListener('input',['$ event'])';-) or'' –

回答

2

您可以用同樣的方式像你這樣keyup

@HostListener('input', ['$event']) 

Plunker example做聽input