V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wedd
V2EX  ›  Angular

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

  •  
  •   wedd · 2018-06-05 16:45:38 +08:00 · 4231 次点击
    这是一个创建于 2361 天前的主题,其中的信息可能已经有所发展或是发生改变。

    没怎么写过 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 变量?
    	}
      }
    }
    
    1 条回复    2018-06-05 17:03:12 +08:00
    yimity
        1
    yimity  
       2018-06-05 17:03:12 +08:00
    reader.onload = (e) =>{
    this.base64 = result;
    }
    或者
    let self = this;
    reader.onload =function (e) {
    self.base64 = this.result;
    }
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2989 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:12 · PVG 22:12 · LAX 06:12 · JFK 09:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.