filePhotoValue: any = "xexe";
sendFile(file) {
var reader = new FileReader();
reader.onload = function (e:any) {
console.log(this.filePhotoValue);
};
}
为什么filePhotoValue在reader.onload控制台"undefined"
而不是xexe
中?没有编译错误,我想将一些值设置为filePhotoValue inside
reader.onload。
答案 0 :(得分:3)
当你进入onload方法时,你会失去"这个"这是方法之外的。要解决此问题,您有两种解决方案: 保存"这个"另一个变量中的上下文:
sendFile(file) {
var reader = new FileReader();
var self = this;
reader.onload = function (e:any) {
console.log(self.filePhotoValue);
};
}
或将当前上下文绑定到函数:
sendFile(file) {
var reader = new FileReader();
reader.onload = function (e:any) {
console.log(this.filePhotoValue);
}.bind(this);
}