关于javascript:Angular2中的(keyup)有哪些选项?

What are the options for (keyup) in Angular2?

释放回车键时,以下工作非常有效。 除了keyup.enter之外,keyup还有哪些其他选项?

1
<input #inputstring (keyup.enter)="doSomething(inputstring.value)"/>


这些是目前测试中记录的选项:ctrl,shift,enter和escape。这些是键绑定的一些有效示例:

1
2
keydown.control.shift.enter
keydown.control.esc

你可以在这里跟踪这个,但没有官方文档,但它们应该很快就会出来。


我正在寻找一种绑定到多个关键事件的方法 - 特别是Shift + Enter - 但是在网上找不到任何好的资源。但是在记录了keydown绑定之后

1
<textarea (keydown)=onKeydownEvent($event)></textarea>

我发现键盘事件提供了检测Shift + Enter所需的所有信息。事实证明$event返回一个相当详细的KeyboardEvent。

1
2
3
4
5
onKeydownEvent(event: KeyboardEvent): void {
   if (event.keyCode === 13 && event.shiftKey) {
       // On 'Shift+Enter' do this...
   }
}

还有CtrlKey,AltKey和MetaKey的标志(即Mac上的Command键)。

不需要KeyEventsPlugin,JQuery或纯JS绑定。


这个文件给你一些提示,例如,keydown.up不起作用你需要keydown.arrowup:

https://github.com/angular/angular/blob/630d93150a58581a0d474ebf1befb5d09b6813c5/modules/angular2/src/platform/browser/browser_adapter.dart


你可以像这样添加keyup事件

1
2
3
4
5
6
template: `
  <input (keyup)="onKey($event)">
  <p>
{{values}}
</p>
`

在Component中,代码如下所示

1
2
3
4
5
6
7
export class KeyUpComponent_v1 {
  values = '';

  onKey(event:any) { // without type info
    this.values += event.target.value + ' | ';
  }
}


今天遇到了同样的问题。

这些文献记载很少,存在一个悬而未决的问题。

一些用于键盘,如空格:

1
2
<input (keyup.space)="doSomething()">
<input (keyup.spacebar)="doSomething()">

一些用于keydown
(可能也适用于keyup):

1
2
3
4
5
6
7
<input (keydown.enter)="...">
<input (keydown.a)="...">
<input (keydown.esc)="...">
<input (keydown.alt)="...">
<input (keydown.shift.esc)="...">
<input (keydown.shift.arrowdown)="...">
<input (keydown.f4)="...">

以上所有内容均来自以下链接:

https://github.com/angular/angular/issues/18870
https://github.com/angular/angular/issues/8273
https://github.com/angular/angular/blob/master/packages/platform-b??rowser/src/dom/events/key_events.ts
https://alligator.io/angular/binding-keyup-keydown-events/


如果您的keyup事件在CTRLSHIFTENTERESC括号之外,请使用@Md Ayub Ali Sarker的指南。此角度文档https://angular.io/docs/ts/latest/guide/user-input.html中提到的唯一键盘伪事件是ENTER键。数字键和字母表还没有键盘伪事件。