Angular 条件事件绑定

有时为了减少事件监听的数量,我们不想用@HostListener装饰器为每个组件实例都绑定事件。 这时需要我们用Renderer2listen方法在构造函数或ngOnInit中手动绑定事件。

constructor(renderer: Renderer2, elementRef: ElementRef) {
 if(myCondition) {
       let even=renderer.listen(elementRef.nativeElement, 'click', () => {
          console.log('Callback');
       });
  }
}

//移除绑定
even();

参考阅读: Dynamically add event listener in Angular 2

Licensed under CC BY-NC-SA 4.0