角度 2 - 从组件的构造函数运行组件方法?


  constructor() {
    document.addEventListener('someEvent', function(event) {
      console.log(event.data);
      this.test(); //throws error - this.test() is undefined
    });
  }

如果我将其移动到ngOnInit,它可以正常工作:

  ngOnInit() {
    this.test(); //works ok
  }

该函数只是组件上的一个方法,在构造函数之后定义:

  public test(){
    console.log('TEST');
  }

我的最终目标是每次在全局窗口上触发事件时someEvent运行组件的test()方法(事件来自原始 javascript,即 document.dispatchEvent(event, {'detail': evntPayload});

我该如何实现此目的?

使用箭头函数保持this指向当前类实例

  constructor() {
    document.addEventListener('someEvent', (event) => { // <<< changed
      console.log(event.data);
      this.test(); //throws error - this.test() is undefined
    });
  }

以下链接应该可以解决您需要的问题。只需绑定到不同的事件。

角度窗口调整大小事件

最新更新