Javascript 从(按键)角度获取按下的键2

Javascript 从(按键)角度获取按下的键2,javascript,angular,Javascript,Angular,在Angular 2中使用(keypress)时,是否可以找出按下了哪个键 例如 公共事件处理程序(){ //一些代码 控制台日志(按键); } 编辑:似乎我的命名约定有点不一致。我不是指AngularJS2,我是指AngularJS2.0和typescript 将$event传递给事件处理程序。$event是一个DOM 事件处理程序(事件){ 日志(event,event.keyCode,event.keyIdentifier); } 如果知道需要哪个KeyboardEvent属性,

在Angular 2中使用(keypress)时,是否可以找出按下了哪个键

例如


公共事件处理程序(){
//一些代码
控制台日志(按键);
}

编辑:似乎我的命名约定有点不一致。我不是指AngularJS2,我是指AngularJS2.0和typescript

$event
传递给事件处理程序。
$event
是一个DOM


事件处理程序(事件){
日志(event,event.keyCode,event.keyIdentifier);
} 
如果知道需要哪个KeyboardEvent属性,可以将其传递到事件处理程序:

<input type=text (keypress)="eventHandler($event.keyCode)">

eventHandler(keyCode) {...}

eventHandler(键码){…}
@组件({
选择器:'key-up3',
模板:`
{{value}}

` }) 导出类KeyUpComponent\u v3{ 值=“”; onEnter(value:string){this.value=value;} }
或者像这样使用

 <input #box (keyup.enter)="onSubmit(form.value)">
 <form [formGroup]="form" (ngSubmit)="onSubmit(form.value)">

根据对答案的评论:


这不会检测到所有事件。例如,不能使用箭头键或转义键。但您可以使用(键控)获取所有这些

获取所有事件(backspace和delete)或任何键的最佳解决方案,只需使用(输入)


eventHandler(键码){…}

2020更新:

event.keyCode
已被弃用,您应该改用
event.code
(只需先检查浏览器兼容性)


eventHandler(事件:KeyboardEvent){
console.log('按下的键是:',事件代码);
}
event.keyCode的弃用:

event.code
浏览器兼容性:


是否使用angularjs?这不会检测所有事件。例如,不能使用箭头键或转义键。但是您可以使用(keydown)来获取所有这些参数。event.key似乎是现在要使用的参数,它给出了一个类似“0”、“a”、“ArrowLeft”等字符串。请使用event.keyCode劝阻。函数AvoidSpace(event:any){var k=event?event.which:window.event.keyCode;if(k==32)返回false;}上面是我用来阻止用户在输入框中输入空格的代码。我正在angular2中实现这一点。我在keycode上得到一个错误,说“类型“Event.any”上不存在属性“keycode”。我该怎么办?如果你想检测退格..等等,请使用向下键谢谢你,马克,请给出另一个准确、简洁的答案。您对StackOverflow的贡献一次又一次地帮助了我。很好的解决方案。不需要检查组件中的关键代码等。我打算写相同的答案。我在这里找到了这个用法。
<input type=text (keypress)="eventHandler($event.keyCode)">

eventHandler(keyCode) {...}
@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; }
}
 <input #box (keyup.enter)="onSubmit(form.value)">
 <form [formGroup]="form" (ngSubmit)="onSubmit(form.value)">
<input type=text (input)="eventHandler($event.keyCode)">

eventHandler(keyCode) {...}
<input type=text (keypress)="eventHandler($event)">

eventHandler(event: KeyboardEvent) {
   console.log('Key pressed is:', event.code);
}