我可以在angular 2的一个函数中包装两个不同的主机侦听器吗?



我需要在一个函数中包装2个不同的主机侦听器,以便我可以在需要侦听器时调用该函数。

@HostListener('window:unload', ['$event'])
unloadHandler() {
this.eventService.send({ name: 'onUnload' });
}
@HostListener('window:beforeunload', ['$event'])
beforeUnloadHander (event: Event){
let confirmation = {
message: undefined
};
this.eventService.send({ name: 'onBeforeUnload',data:confirmation });
}

现在我需要将它包装在一个函数中,如下所示,并且可以在需要时调用该函数

public enable(): any {
@HostListener('window:unload', ['$event'])
unloadHandler() {
this.eventService.send({ name: 'onUnload' });
}
@HostListener('window:beforeunload', ['$event'])
beforeUnloadHander (event: Event){
let confirmation = {
message: undefined
};
this.eventService.send({ name: 'onBeforeUnload',data:confirmation });
}
}

这个问题已经有了答案。您可以为一个函数设置多个Hostlistener,我可以使用多个@hostlistener或事件基于浏览器?

但是你想做的事情不起作用。你不能自己调用有Hostlistener的函数。当主机检测到这些事件时,将自动触发这些功能。所以在你的例子中,就在标签页/浏览器关闭之前,unload()函数被调用。

相关内容

  • 没有找到相关文章

最新更新