首页 > 解决方案 > 如何使用从 papaparse 中的完整功能获得的结果/数据进行 http 发布?

问题描述

我基本上收到以下错误

Cannot read property 'post' of undefined

我的代码如下:

export class AppComponent {
  constructor(public http: HttpClient, private papa: PapaParseService) {}
  results:any;
  createOrders(csvData) {
    this.http.post(environment.ordersUrl, {'order': csvData})
    .toPromise().then((data)=> console.log(data));
  }
  handleFileSelect(evt) {
    let file = evt.target.files[0];
    this.papa.parse(file, {
      header: true,
      dynamicTyping: true,
      complete: function(csvOrders) {
        this.http.post(environment.ordersUrl, {'order': csvOrders.data}).subscribe();
      }
    });
  }
}

标签: angularpapaparse

解决方案


您正在调用的完整函数内部具有不同的范围,因此不同this

您可以使用胖箭头函数:

complete: csvOrders => {
    ...
 }

或者绑定this到函数:

complete: function(csvOrders) {
  ...
}.bind(this)

推荐阅读