【发布时间】:2018-06-03 09:14:20
【问题描述】:
我用模板创建了一个简单的组件:
<div (click)="onClick();">Click me</div>
在 *.ts 文件中我有类似的东西:
public onClick() {
console.log('click');
}
@HostListener('document:click', ['$event'])
public onClickListener(event: Event) {
console.log('click listener');
}
在这种情况下,onClick 函数总是在 onClickListener 之前调用。
我的目标是在 Angular (click) 或 (routerLink) 等之前调用一些方法。
有可能吗?
重要的是 - 这个监听器应该是一个全局方法,它在运行时处理所有点击。
【问题讨论】:
-
点击前你想调用什么。为什么点击事件不能处理?
-
我确信我正确理解了您的问题。为什么不这样做: public onClick() { methodToExecuteBefore(); console.log('点击'); } ?
-
因为 onClickListener 最终将在根(主)组件中,并且必须处理所有点击(不仅仅是(点击))。
-
你想在应用程序的任何地方处理点击,还是只在按钮上?
-
任何地方。每次点击都很重要。
标签: javascript angular events onclick onclicklistener