如何从观察者的处理程序中访问组件属性?

时间:2019-04-14 03:16:04

标签: angular

如何从可观察对象的观察者处理程序中访问组件属性(变量和方法)?我已经阅读了许多关于可观察对象的示例,但是它们在处理程序中所做的全部是console.log(),它在现实生活中不是很有用(例如https://angular.io/guide/observables)。

当可观察对象完成时,我想在组件中同步操作。

export class MyComponent {
  // Create simple observable that emits three values
  const myObservable = of(1, 2, 3);
  private myProperty = false;

  private myObserver = {
    next(position) {
      console.log('position: ', position);
    }
    complete() {
      this.myProperty = true;
    }
  }

  constructor() {
    myObservable.subscribe(myObserver);
  }
}

执行此命令时,我得到this.myProperty未定义。

谢谢

1 个答案:

答案 0 :(得分:3)

我认为您可以使用箭头功能来保留this上下文:

private myObserver = {
  next: (position) => {
    console.log('position: ', position);
  },
  complete: () => {
    this.myProperty = true;
  }
}