Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过angular检查空格键事件?_Javascript_Angular_Keyup - Fatal编程技术网

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的解决方案(因为我也因为其他原因不得不这么做),但我很清楚为什么我的代码不起作用!