angular下是否可以不用this而指向当前实例
问题
用addEventListener绑定事件后,messageListener内的this指向改变为window,导致 this.showPreview = false;
执行错误。如何重新获取当前实例?
(不能在ngOnInit里使用bind(this),因为使用后removeEventListener会失效)
代码
ngOnInit(): void {
window.addEventListener('message', this.messageListener);
}
messageListener(e) {
this.showPreview = false;
}
ngOnDestroy() {
window.removeEventListener('message', this.messageListener);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可以用lambda表达式,比如
但是,angular不应该直接使用window对象注册原生事件,而应该使用@HostListener('window:message',['$event'])