尝试实现 Command+S 的快捷键组合来保存表单。
我读过这个 -https://angular.io/guide/user-input https://angular.io/guide/user-input,但它没有提及任何有关元或命令的信息。
尝试用以下内容包围表单:
<div
(keyup.command.s)="save()"
(keyup.command.u)="save()"
(keyup.control.u)="save()"
(keyup.control.s)="save()"
(keyup.meta.u)="save()"
>
其中,只有control.u
and control.s
worked.
凭借 Angular 2+ 的所有强大功能和跨浏览器功能,我希望能够以一种优雅的方式处理这个问题,使用(keyup...)
.
当然,许多 Angular 开发人员都使用 Mac :)。
我也读过如何通过 JavaScript 捕获 Mac 的命令键? https://stackoverflow.com/questions/3902635/how-does-one-capture-a-macs-command-key-via-javascript and http://unixpapa.com/js/key.html http://unixpapa.com/js/key.html但仍然希望 Angular 优雅的解决方案,而不是与浏览器特定的东西作斗争......
全局监听器,未弃用的答案:
@HostListener('window:keydown', ['$event'])
onKeyDown(event: KeyboardEvent) {
if ((event.metaKey || event.ctrlKey) && event.key === 's') {
this.save();
event.preventDefault();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)