【发布时间】:2020-05-12 10:18:01
【问题描述】:
在我的组件中,我使用 addEventListener 订阅了 html 点击事件,并传递了回调函数。在回调函数中,我使用了类似 this.someVariable 的组件变量,但我看到 this 的范围已更改并设置为 html 元素对象。在这里如何使用组件变量?下面我给出了一个示例代码。在我的handleHtmlClickEvent() 函数中,我无法访问this.x 变量。
export class SomeComponent implements OnInit, AfterViewInit{
x = 'Hello';
constructor(private elementRef: ElementRef){}
ngOnInit(){
}
ngAfterViewInit(){
const element = this.elementRef.nativeElement.getByElementId('123');
element.addEventListener('click', this.handleHtmlClickEvent)
}
handleHtmlClickEvent(){
console.log(this.x);
}
}
【问题讨论】:
-
这是角度 2 吗? (使用打字稿)。如果是,有更好的方法来做到这一点
-
角度 7。你能解释一下@SupunDeSilva 的方式吗?
-
对不起,我错过了消息,我会采取@ionut-t 的方法检查链接stackblitz.com/edit/angular-ivy-uj1ete
标签: javascript angular typescript dom-events