Javascript 如何通过angular检查空格键事件?
我有一个角度模板,它使用以下语法:Javascript 如何通过angular检查空格键事件?,javascript,angular,keyup,Javascript,Angular,Keyup,我有一个角度模板,它使用以下语法: (click)="dosomething()" 那很好。我现在需要在返回时或空格键上发射相同的事件。我加了这个作为回报: (keyup.return)="dosomething()" 这也很好 去了太空吧,我没法用了。我两个都试过了 (keyup.space)="dosomething()" …以及 (keyup.spacebar)="dosomething()" ……但两者都不起作用。在这两种情况下,按空格键只是默认的浏览器行为,并将页面向下滚动一点
(click)="dosomething()"
那很好。我现在需要在返回时或空格键上发射相同的事件。我加了这个作为回报:
(keyup.return)="dosomething()"
这也很好
去了太空吧,我没法用了。我两个都试过了
(keyup.space)="dosomething()"
…以及
(keyup.spacebar)="dosomething()"
……但两者都不起作用。在这两种情况下,按空格键只是默认的浏览器行为,并将页面向下滚动一点
keyup甚至似乎是有文档记录的解决方案(至少就我所能找到的而言),所以我很难说我在这里可能遗漏了什么 若要获得预期结果,请使用
(keyup.Space)
而不是(keyup.Space)
(大写字母)
参考工作代码示例-您可以在组件中而不是html模板中执行此操作:
import { Component, HostListener } from '@angular/core';
@Component({
selector: 'app-page-viewer',
templateUrl: './page-viewer.component.html',
styleUrls: ['./page-viewer.component.css']
})
export class PageViewerComponent implements OnInit, OnDestroy {
@HostListener('document:keyup', ['$event'])
handleKeyboardEvent(event: KeyboardEvent) {
switch (event.key) {
case 'ArrowLeft':
// trigger something from the left arrow
break;
case 'ArrowRight':
// trigger something from the right arrow
}
constructor(){}
}
这就是我最后做的。在此之前,我确实注意到(keydown.space)是有效的。仍然很好奇为什么(keyup.space)没有!我最终选择了Ponyboy的解决方案(因为我也因为其他原因不得不这么做),但我很清楚为什么我的代码不起作用!