ionic3 作用域问题, 如何在 FileReader()的 onload 事件中,把读取的数据传递给作用域的变量?

没怎么写过 ts,对 angularjs 也是边写边查, 要实现前端选择文件并读取为 base64,请教该如何做? 本人 js 水平还停留在 jquery 时代,请不吝赐教

伪代码:

import { Component } from '@angular/core';
@IonicPage()
@Component({
  selector: 'test',
  templateUrl: 'test.html',
})
export class TestPage {
  base64='';    //存储 base64 字符串
  constructor(
    public navCtrl: NavController,
    public navParams: NavParams
  ) {};
  
  readPicFile(){
    var file_ipt=document.getElementById("file_up");
    var file = file_ipt.files[0];
    var reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = function (e) {
        base64 = this.result;    //这样是错的
        //这里该如何能修改上方的 base64 变量?
    }
  }
}
阅读 2.7k
1 个回答

两个方法:

1.
readPicFile(){
  let that=this;
  ...
  reader.onload = function (e) {
       that.base64 = xxx;   
    }
  }

2.
readPicFile(){
  ...
  reader.onload = (e)=> {
       this.base64 = xxx;   
    }
  }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进