Angular 4 函数使用 papaparse 丢失上下文

标签 angular typescript papaparse

我有以下代码

httpcsv2Array(event) {
    var gethttpcsv = 
    Papa.parse('https://docs.google.com/spreadsheets/d/e/yadyada/pub?output=csv', {
                        download: true,
                        header: true,
                        dynamicTyping: true//,
                        complete: this.importhttpcsv
            });
  }

importhttpcsv(results) {
    this.bformservice.deleteAll();

    results.data.forEach(item => {
      let tarr = item as bform;
      this.bformservice.bulkcreatebform(tarr);
    });
}

看来 importhttpcsv 是在 papa.parse 的上下文中启动的,因为我收到错误: 类型错误:无法读取未定义的属性“deleteAll”

我可以在同一个类的其他函数中使用 this.bformservice.deleteAll() 。

我需要访问不同服务中的函数才能更新数据库。有办法解决这个问题吗?

谢谢

最佳答案

需要使用箭头函数来假装正确的this

complete: () => { 
  this.importhttpcsv();
} 

关于Angular 4 函数使用 papaparse 丢失上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47426572/

相关文章:

javascript - 爸爸解析为文件类型输入提供类型错误对象可能为空

javascript - PapaParse "unparse"函数可以使用不同的 header 吗?

javascript - 网址正在更改,但内容未更新

angular - 如何将数组转换为json数组对象

typescript - TSLint中的 `extends`和 `rulesDirectory`有什么区别

javascript - 在单个文件中 bundle typescript 输出

javascript - 在两个解耦的组件之间创建连接

javascript - 存储在全局变量中

Angular - 如何更改工作区名称?

javascript - primeng 下拉列表显示值而不是选择标签