2017-05-09 59 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