Angular 2.删除@Hostlistener() [英] Angular 2. Remove @Hostlistener()

查看:311
本文介绍了Angular 2.删除@Hostlistener()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在Angular 2中删除 @Hostlistener(),就像在Native JS中使用 removeEventListener 一样?

How can I removed @Hostlistener() in Angular 2, like used removeEventListener in Native JS?

示例:
我的页面中有很多dropDown组件。当dropDown打开时,我想在文档点击事件上添加处理程序,并在dropDown关闭时删除处理程序。

原生JS:

function handler(){
  //do something
}
document.addEventListener('click', handler); // add handler
document.removeEventListener('click', handler); // remove handler

Angular 2:

  @HostListener('document: click') onDocumentClick () {
    // do something
  }

  // How can I remove handler?


推荐答案

Julia Passynkova答案几乎是正确的。

Julia Passynkova Answer is almost correct.

只需删除document周围的引号,如下所示:

Just remove the quotation marks around "document", like this:

// subscribe
this.handler = this.renderer.listen(document, "click", event =>{...});

// unsubscribe
this.handler();

这篇关于Angular 2.删除@Hostlistener()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆