javascript - 使用快捷键在angular6中聚焦可编辑项目的方法是什么?
问题描述
我尝试在 Angular 6 中使用 accesskey。但它似乎不起作用。
组件 html 模板片段:
<input id="search_value" accesskey="S">
任何人都可以在Angular 6中提供工作代码示例。提前致谢
解决方案
您的代码有效,前提是“S”是小写的。accesskey
每个浏览器和操作系统都有不同的键盘快捷键:在 Windows 和 Chrome 上的示例中,按下[Alt] + [s]
将聚焦元素。
如果您需要不同的快捷键组合,则需要监听按键。这可以在普通 JS 中相当简单地完成,即在这个例子中。
但是,“Angular”方式意味着不直接与 DOM 交互。这可以通过注入Renderer2
和设置事件监听器来实现:
constructor(private _r: Renderer2) {}
ngOnInit() {
this._r.listen(document, 'keyup', (event) => {
if(event.keyCode === 83) {
// assuming you get a reference to the input element
this.input.nativeElement.click();
}
})
}
更好的是,使用 Observables:
ngOnInit() {
Observable.fromEvent(document, 'keyup').pipe(
filter(s => s.keyCode === 83)
).subscribe(s => this.doStuff())
}
这也可以很容易地包含在指令中。
推荐阅读
- python - Python:下采样令牌或下采样 word2vec 模型
- python - 你能反转 PyTorch 神经网络并激活输出中的输入吗?
- wordpress - 如何以编程方式提交联系表格 7
- pysdl2 - PySDL2在窗口表面显示灰度numpy数组
- python - 模拟 for 循环迭代来自多个数组的所有可能选项
- visual-studio - 在 Visual Studio 2019 中更改 docker compose up 名称
- airflow - 当我们进行回填时,Composer/Airflow 如何自动跳过时间传感器?
- html - HTML 和 CSS:表格上的圆角
- r - 用R中不同数据帧的值替换数据帧中的部分值(starts_with)
- python-3.x - 从以 XML 格式存储的 UML 模型中提取类和关系