从另一个方法的内部函数访问Typescript类方法或属性

时间:2016-06-26 13:33:51

标签: typescript angular

基本上标题已经解释了问题。我附上了一个代码提取,应该将我的想法放在一边。

export class MyComponent {

  constructor(private element: ElementRef, private myservice:MyService){}

  onChange(event: any): void {
    // works fine
    var imageElem = this.element.nativeElement.querySelector('.image');
    reader.onloadend = function() {
      // works fine
      console.log(imageElem)
      // does not work
      this.doSome(src);
      // does not work
      this.myservice.doSome();
    }
    reader.readAsDataURL(file);
  }

  doSome(src:string) {}
}

1 个答案:

答案 0 :(得分:4)

我会将arrow function用于onloadend,如:

reader.onloadend = () => {
  ...   
}

这种方式this将成为回调中MyComponent的实例,因为:

  

箭头函数捕获封闭上下文的此值