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

时间:2017-11-22 04:02:44

标签: 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的上下文中启动的,因为我得到了错误: TypeError:无法读取属性' deleteAll'未定义的

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

我需要访问不同服务中的函数才能更新数据库。有什么方法吗?

谢谢

1 个答案:

答案 0 :(得分:2)

需要使用Arrow function假装正确this

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