javascript - Angular 有类似 window.addEventListener 的功能吗?
问题描述
我有一个像下面这样的javascript函数。
window.addEventListener('message', function(event) {
document.getElementById('mytoken').value = JSON.parse(event.data);
var token = JSON.parse(event.data);
alert('Received message ' + token.message);
var mytoken = document.getElementById('mytoken');
mytoken.value = token.message;
}, false);
我想在 Angular 5 中使用这个脚本,当然,我正在尝试为 Angular 5 找到合适的解决方案。谢谢
解决方案
使用 HostListener 装饰器
就我个人而言,我喜欢这样做的方式
import {HostListener, KeyboardEvent} from '@angular/core';
@Component({...})
export class MyComponent {
@HostListener('document:keyup', ['$event'])
onKeyUp(ev:KeyboardEvent) {
// do something meaningful with it
console.log(`The user just pressed ${ev.key}!`);
}
}
推荐阅读
- methods - “命名空间不能直接包含字段或方法等成员
- javascript - img.get() 有时在 p5.js 中返回图像,有时返回数组
- python - 如何在游戏中添加积分系统和记分牌?
- android - 使用 NavigationComponent (Android) 的复杂导航
- c - 在 GLib 中禁用彩色日志消息
- unity3d - unity_LightColor[1] 及以上为空,对象附近有 2 个点光源
- c# - Emgu CV 中 Bitmap 属于什么命名空间?
- javascript - 带有 JavaScript 的搜索栏输入功能
- docker - 在 Docker 容器外读取时,Sqlite3 数据库格式错误
- node.js - nodejs 应用程序工作,但 nginx 代理没有捕捉到它