从 Angular 2 中的 FileReader 获取值

2024-06-23

我有以下组件加载文件并将其内容绑定为字符串

    export class NgCsvComponent {

        @Input() csv: any;

        @Output() csvChange: any = new EventEmitter();

        public localCsv : any = '';

      constructor() { }

      changeListener($event): void {
        this.readFile($event.target);
      }

      readFile (inputValue : any) : void {
        let reader = new FileReader (),
              file : File = inputValue.files[0];
          reader.readAsText(file);    
        reader.onload = this.onLoadCallback;
      }

        onLoadCallback (event) {
            this.csvChange.emit(event.target["result"]);
        }
    }

问题是this.csvChange内部未定义onLoadCallback那么我如何将结果传递给组件中的某个变量呢?

我正在搜索其他类似的question https://stackoverflow.com/questions/30830268/how-to-make-filereader-work-with-angular2但永远不会在 onloadCallback 函数之外得到结果


问题在于,当您执行以下操作时,上下文会丢失:

reader.onload = this.onLoadCallback;

一种解决方案是:

reader.onload = (e: Event) => {
    this.onLoadCallback(e);
}

另一种是:

reader.onload = this.onLoadCallback.bind(this);

还有一个是:

onLoadCallback = (event) => {
    this.csvChange.emit((event.target as FileReader).result);
}

底线。确保this上下文始终保留在您的内部class.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Angular 2 中的 FileReader 获取值 的相关文章

随机推荐

  • 如何使用 erlang-examples

    我刚刚使用下载了 Erlangapt get onto 乌班图10 10 我如何运行Erlang附带的示例 您可以通过apt get install erlang examples 我尝试进入它们存储的目录并编译ball erl 但我得到了
  • sipdroid - 当一个来电继续时不显示另一个来电

    我已经安装了SIPDROID 我在 sip2sip 注册了三个帐户 之后 我使用该帐户之一配置了应用程序 应用程序运行良好 问题是 如果我使用 SIP 向同一部电话拨打多个电话 是否可以同时处理所有电话 当第一个呼叫继续时 另一个来电未显示
  • Elastic Search:聚合随机顺序?

    是否可以进行随机顺序的聚合 好像只有asc或者desc可能 aggs genders terms field gender order count asc 对的 这是可能的 是这样做的 aggs genders terms field ge
  • Algolia 初始搜索参数 instantsearch.js

    我有一个索引 我试图在其中传递 algolia 中查询的初始值 我正在使用 instantsearch js 现在它只是从我的索引加载所有内容 如何在页面加载时将初始值传递给索引 例如Select from index where Cate
  • 如何强制 Visual Studio 2010 重新加载磁盘上已更改的文件和项目?

    我经常使用命令行工具对已加载到 Visual Studio 2010 中的文件和项目进行源代码管理更新 在以前的版本中 当我执行此操作时 我可以通过执行 全部保存 来强制 Visual Studio 注意到并加载更改 这在 Visual S
  • 如何更改 Mediawiki 导航侧边栏和页脚中的字体大小和颜色?

    我的网站是使用 Mediawiki 开发的 我有以下问题 如何更改导航侧边栏和页脚中的字体大小和字体颜色 我正在使用矢量皮肤 但很难找到进行这些更改的正确方法 对于导航 在你的CSS中搜索 div mw panel div portal d
  • 将数据保存到 iOS 的最佳方式?

    在我的应用程序 iOS 5 中 我想保存数据 我想节省债务 所以就是 加或减钱 金额 以及有债务的人的姓名 或您有债务的人的姓名 但我不知道如何保存数据 NSUserdefaults Core data SQLite 也许你可以告诉我拯救他
  • WebClient 上的 Exchange() 会抛出哪些异常?

    我已经实现了一个服务 它使 ReST 调用其他服务来实现其部分功能 我正在使用反应式WebClient为此 类似 webClient post uri contentType accept header syncBody someReque
  • 处理续集迁移和初始化的工作流程?

    我不明白续集迁移工作流程是如何工作的 我有一个新建项目 数据库是使用 SQL 脚本设计的 我们用了sequelize auto之后生成模型 我现在需要生成一个迁移文件 以便我可以运行 CLI 来运行 SQL 查询 为本地配置的数据库创建包含
  • 操作系统如何选择正确的 ico/favicon 大小?

    基于此 stackoverflow 讨论 https stackoverflow com questions 1526747 ideal size for ico 可以在单个文件中提供各种大小 并且 操作系统将选择最好的一个来显示 这是如何
  • mod_rewrite 仅适用于 GET

    这是一个不太可能的事情 但我希望找到一个简单的解决方法来解决一个奇怪的错误 该错误仅在应用程序省略 推断查询字符串时才会出现 在深入研究一千行缩小的第三方 javascript 之前 我想了解是否可以使用 mod rewrite 自动应用查
  • 如何使用 python 查找 iframe 中按钮的 XPath?

    我在 iframe 中有以下 html 对象 提交 按钮的 html 代码 https i stack imgur com pe3rZ png 我需要找到它的 XPath 才能单击 提交 按钮 但找不到它 XPath 助手仅显示 ifram
  • 使用 Tomcat 的外部 LDAP JNDI 连接

    我想知道如何使用 TOMCAT 中的 JNDI 配置连接外部 LDAP 我的代码是这样的 try InitialContext iniCtx new InitialContext ctx LdapContext iniCtx lookup
  • 如何使用纸对话高分子元件?

    我通过添加开始和结束标签来使用该元素
  • pymssql 包不适用于 aws 中的 lambda

    我们如何为 lambda 创建 pymssql 包 我尝试使用创建它 pip install pymssql t 当我运行 lambda 函数时 它抱怨说 无法导入模块 lambda function 没有名为 lambda functio
  • 如何在 SwiftUI 中实现触发 switch case 的左或右 DragGesture() ?

    我在视图中创建了一个 DragGesture 无论用户向左还是向右滑动 它都应该选择 State Bool 问题是只检测到向右滑动 如何使用 gesture 捕获用户在屏幕上向左还是向右滑动 import SwiftUI struct Sw
  • 为什么要给伪元素添加块级别?

    从本页的代码 http css tricks com snippets css sticky footer http css tricks com snippets css sticky footer page wrap min heigh
  • 视图和表在性能上的差异

    对于包含大量数据的表来说什么是最好的 我有一个存储过程 可以根据一些过滤器创建报告 在我的 SP 中 我读取表格并放入所有内部联接和公式 然后在放置过滤器的 where 条件中 谈论性能什么更好 创建一个包含所有联接的视图或读取表 就像我正
  • 无法在静态方法中创建静态变量?

    为什么这不起作用 public static int GetListOfAllDaysForMonths static int MonthDays new int 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
  • 从 Angular 2 中的 FileReader 获取值

    我有以下组件加载文件并将其内容绑定为字符串 export class NgCsvComponent Input csv any Output csvChange any new EventEmitter public localCsv an