angular 2 HostListener - keydown空间事件在IE中不起作用
问题描述:
我在IE11中遇到了问题@HostListener。 我需要赶上当用户使用keydown事件的空间,我的代码非常简单,它在Chrome和FireFox中工作正常,但在IE中不起作用。angular 2 HostListener - keydown空间事件在IE中不起作用
import {Component, HostListener} from '@angular/core';
@Component({
selector: 'home',
styleUrls: ['./home.component.css'],
templateUrl: './home.component.html'
})
export class HomeComponent {
@HostListener('window:keydown.control.space', ['$event'])
@HostListener('window:keydown.space', ['$event'])
spaceEvent(event: any) {
alert('space key!');
}
}
在IE开发人员工具中,我看不到任何错误或警告,并且我不知道如何解决此问题。 任何建议如何解决这个问题?
答
我找到了解决方案。 IE不能与许多各种活动正常工作还需要用@HostListener('window:keydown', ['$event'])
再搭上一些键代码
例子:
import {Component, HostListener} from '@angular/core';
@Component({
selector: 'home',
styleUrls: ['./home.component.css'],
templateUrl: './home.component.html'
})
export class HomeComponent {
@HostListener('window:keydown', ['$event'])
spaceEvent(event: any) {
if(event.ctrlKey && event.keyCode == 32)
console.log('ctrl + space');
else if(event.keyCode == 32)
console.log('space');
}
}
+0
路要走...... –
哪个IE版本是您使用。旧版本的IE不支持各种事件。这对你来说更是一个限制。 –
看看这里。 https://stackoverflow.com/questions/9507200/why-keydown-listener-doesnt-work-in-ie –