在Angular2应用程序中创建全局键盘快捷键(也就是热键)的正确方法是什么?
让我们说好的起点就是开始工作:"?" 用于备忘单和"Alt + s"用于提交表格.
我应该映射"?" 不知何故,主要组件,然后开发属性指令,将应用于那些应该响应特定热键的组件,但是 - 如何防止输入字段响应"?".
Gün*_*uer 41
您可以在模板中使用此语法
<div (window:keydown)="doSomething($event)">click me<div>
Run Code Online (Sandbox Code Playgroud)
在组件中调用此方法
doSomething($event) {
// read keyCode or other properties
// from event and execute a command
}
Run Code Online (Sandbox Code Playgroud)
监听主机组件本身
@Component({
selector: 'app-component',
host: { '(window:keydown)': 'doSomething($event)' },
})
class AppComponent {
doSomething($event) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
或者通过这种等效的语法
@Component({
selector: 'app-component',
})
class AppComponent {
@HostListener('window:keydown', ['$event'])
doSomething($event) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
小智 10
您可以使用我创建的名为angular2-hotkeys的库
它允许您创建这样的热键:
constructor(private _hotkeysService: HotkeysService) {
this._hotkeysService.add(new Hotkey('meta+shift+g', (event: KeyboardEvent) => {
console.log('Typed hotkey');
return false; // Prevent bubbling
})); }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16403 次 |
| 最近记录: |