我在angular(4.0.0)中创建了一些组件来检测带有装饰器HostListener的键盘语言(rus-eng):
NO
此方法是连接键盘消息
// detect keyboard lan
@HostListener("window:keypress", ["$event"])
public detectKeyboard(keyCode: number, mode: string): void {
// if current lan is Rus
if (mode === "Rus") {
if (keyCode >= 128 && keyCode <= 255) {
this.currentKeyboard = "Rus On";
} else {
this.currentKeyboard = "Eng On";
}
}
}
这是模板:
// interfacing keyboard message
public getKeyboard(): string {
return this.currentKeyboard;
}
我将输出添加到另一个组件中共享:
<div *ngIf="getKeyboard()" class="alert alert-danger">
{{currentKeyboard}}
</div>
在另一个组件的模板中,我称之为:
@Output("keyBoard") public keyBoard: EventEmitter<Object>;
和HostLitener装饰器的问题,我无法调用我的方法detectKeyboard,我不知道为什么。可能是HostListener参数有问题吗?