【问题标题】:How to access component properties from within an observer's handler?如何从观察者的处理程序中访问组件属性?
【发布时间】:2019-04-14 11:20:36
【问题描述】:

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

当 observable 完成时,我想在我的组件中同步一个动作。

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 是未定义的。

谢谢

【问题讨论】:

    标签: angular


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-13
      • 2020-05-22
      • 1970-01-01
      相关资源
      最近更新 更多