Angular6中监听DOM元素事件

339 阅读1分钟

背景

由于使用原生addEventListener方法会导致this指向有问题,并且无法移除事件监听,导致事件多次绑定,影响性能,而es6中都是箭头函数,所以ng6中可以使用使用rxjs

一、package.json

node版本:8.10.0

angular版本:6.0.7

rxjs版本:6.2.1

二、代码实现

import { fromEvent } from 'rxjs';
 
// 绑定页面点击事件
monitorClick() {
     this.$pageClick = fromEvent(document, 'click').subscribe(() => {
       //
     });
}

// 移除页面点击事件
removeClick() {
    if (this.$pageClick) {
      this.$pageClick.unsubscribe();
    }
}