Javascript 获取从 (keypress) angular2 按下哪个键
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/34157705/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Get which key pressed from (keypress) angular2
提问by TheFisherman
Is it possible to find out which key was pressed when using (keypress) in Angular 2?
在 Angular 2 中使用 (keypress) 时,是否可以找出按下了哪个键?
E.g.
例如
<input type=text (keypress)=eventHandler()/>
public eventHandler() {
//Some code
console.log(keyPressed);
}
Edit: Seems my naming conventions were a bit off. I did not mean AngularJS 2, I meant Angular 2.0 with typescript.
编辑:似乎我的命名约定有点偏离。我不是指 AngularJS 2,我指的是带有打字稿的 Angular 2.0。
回答by Mark Rajcok
Pass $event
to your event handler. The $event
is a DOM KeyboardEvent.
传递$event
给您的事件处理程序。这$event
是一个 DOM KeyboardEvent。
<input type=text (keypress)="eventHandler($event)">
eventHandler(event) {
console.log(event, event.keyCode, event.keyIdentifier);
}
If you know which KeyboardEvent property you want, you can pass that into your event handler:
如果你知道你想要哪个 KeyboardEvent 属性,你可以将它传递给你的事件处理程序:
<input type=text (keypress)="eventHandler($event.keyCode)">
eventHandler(keyCode) {...}
回答by Clayton K. N. Passos
@Component({
selector: 'key-up3',
template: `
<input #box (keyup.enter)="onEnter(box.value)">
<p>{{value}}</p>
`
})
export class KeyUpComponent_v3 {
value = '';
onEnter(value: string) { this.value = value; }
}
Or use like this..
或者像这样使用..
<input #box (keyup.enter)="onSubmit(form.value)">
<form [formGroup]="form" (ngSubmit)="onSubmit(form.value)">
回答by Emeka Obianom
Based on the comment made on the answer:
根据对答案的评论:
this does not detect all events. for example not arrow keys or escape. but you can use (keydown) to get all of them.
这不会检测到所有事件。例如不是箭头键或转义键。但是您可以使用 (keydown) 来获取所有这些。
The best solution to get all events both backspace and delete or whatever key, just use (input)
获得退格和删除或任何键的所有事件的最佳解决方案,只需使用(输入)
<input type=text (input)="eventHandler($event.keyCode)">
eventHandler(keyCode) {...}