基本上标题已经解释了问题。我附上了一个代码提取,应该将我的想法放在一边。
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) {}
}
答案 0 :(得分:4)
我会将arrow function用于onloadend
,如:
reader.onloadend = () => {
...
}
这种方式this
将成为回调中MyComponent
的实例,因为:
箭头函数捕获封闭上下文的此值