angular - Angular 键盘快捷键的更多组合?
问题描述
我正在尝试为我们的网站创建键盘快捷键。其中之一是试图让用户轻松地重定向到他们想要的任何页面。我设法让基础工作就像简单地使用 shift + r 如下所示:
@HostListener('window:keydown.shift.r') spaceEvent() {
this.redirect();
}
但是,我不希望任何组合与用户可能已经在做的事情相混淆,所以我想让它建立在 Shift + 2 个字母键上。但是,无论我将其更改为:
@HostListener('window:keydown.shift.r.s') spaceEvent() {
this.redirect();
}
甚至重组为:
@HostListener('window:keydown', ['$event']) spaceEvent(event: any) {
if ( event.key == "r" && event.key == "s" && event.key == "Shift") {
this.redirect();
};
}
它不工作,我错过了什么吗?密钥是否写不正确?编辑:如果不可能,我还能做哪些其他组合不会干扰用户?像 TAB + "s" 这样的组合似乎不起作用,Enter + "s" 也不起作用。
Edit2:我尝试制作条件,但似乎没有将它们压在一起,您可以按顺序激活它,这并不是我真正想要的:
@HostListener('window:keydown', ['$event']) spaceEvent(event: any) {
if ( event.key == "Shift") {
this.keySwitch1 = true;
};
if (this.keySwitch1 && event.key == "r") {
this.keySwitch2 = true;
};
if (this.keySwitch2 && event.key == "s") {
this.settingRedirect();
}
}
Edit3:我坚持使用 Alt 键组合,但我会留下这个问题,看看是否有更好的多个键命令选项。
解决方案
推荐阅读
- bash - 递归查找并使用部分文件路径进行输出和更多命令
- angular - 订阅者中的 Angular 功能错误
- powershell - 是否有 PowerShell 命令告诉 PS 在继续之前不要等待服务启动?
- jquery - 这是什么低于时间表,我如何禁用它?
- python - Python中的.writerow()csv没有写入所有数据
- c# - 如何将复选框值作为字符串而不是布尔值传递
- python - 提取表格并将它们导出到具有不同工作表循环的 excel
- r - 如何在同一个shell会话中从R执行多行(cmd)shell?
- r - 如何在 R-markdown 中创建带有字母和/或罗马数字的自动嵌套列表和子列表?
- amazon-web-services - 如何在不同的 AWS 账户中使用相同的域名?