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

发布于 2022-09-07 12:19:49 字数 692 浏览 26 评论 0

没怎么写过 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 变量?
    }
  }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暮光沉寂 2022-09-14 12:19:49

两个方法:

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

2.
readPicFile(){
  ...
  reader.onload = (e)=> {
       this.base64 = xxx;   
    }
  }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文