特定按键事件的事件绑定

tar*_*s-d 10 angular

在Angular中,我可以编写<input (keyup.enter)"onEnter($event)">以检测用户何时按Enter键.

我可以与其它按键做同样的esc,space,shift等.

但是如何检测用户何时按shift+ up

是否有支持组合键的列表?(我在官方文档中找不到任何内容)

tar*_*s-d 15

经过一些研究,我找到了巧妙的方法:

<!-- Listen to Shift + Up -->
<input (keyup.shift.arrowup)="...">

<!-- Listen to Ctrl + Shift + Down -->
<input (keyup.control.shift.arrowdown)="...">

<!-- Listen to Esc within window -->
<div (window:keyup.esc)="...">
Run Code Online (Sandbox Code Playgroud)

UPDATE

探索角度源(这里这里).

事实证明,此类事件名称的一般语法是:eventname.modifier.key.
其中:
- eventname:keydownkeyup
- 修饰符:alt,control,metashift(可以多于一个)
- key:来自KeyboardEvent.key属性的键

例如:keyup.control.z,keyup.control.backspace,keyup.shift.pageup,keyup.alt.dot.

请注意,某些组合可能不起作用,例如keyup.shift.tab.