你如何在AngularJS服务中使用PapaParse?

时间:2018-06-06 12:11:09

标签: angularjs asynchronous code-injection papaparse

所以 - 我是Angular JS的新手,并尝试使用PapaParse库对服务中的CSV进行排序;此CSV数据将用于两个不同的模块。每个模块代表一个不同的图表。

我使用了PapaParse的流项来进行排序,完成项目的唯一工作就是在完成后返回。但是,在我调用它的控制器中,我得到一个未定义的变量。当它在控制器中时它工作正常,但我正在尝试重构。我列出了迄今为止我尝试过的事情(可能没有正确实施):

  1. 承诺。不起作用,因为它不是响应对象。
  2. 包装函数并在控制器中使用回调。它不仅看起来很奇怪,而且还没有用到
  3. 这是一项名为' graph'

    的服务
     var parseCSV = $window.Papa.parse("data/claims.csv", {
        download: true,
        header: true,
        fastmode: true,
        //Streaming function
        step: function(results, parser) {
    
            var data = results.data[0];               //Data object
            var d = new Date(data['IncidentDate'])    //Get the date
            var month = d.getMonth();                 //Get the date's month
            var year = d.getFullYear();               //Get the date's full year
            var value = 0;                            //Initialize value to zero
    
            //Create a conditional in case their are empty lines
            if (data['CloseAmount'] !== undefined)
            {
              //If there's not a hypen, convert to integer
              if (data['CloseAmount'] !== '-')
              {
                  value = convertDollarToInteger(data['CloseAmount']);
              }
    
              //Create a push object with all neccessary info
              var pushObj = {
                airline: data['AirlineName'].trim(),
                value: value,
                airport: data['AirportCode']
              }
    
              //Push object into rawData
              rawData[year][month].push(pushObj);
            }
        },
        //When the parsing is done
        complete: function() {
          return rawData;
      }
    })
    
    return {
      parseCSV: parseCSV,
      years: years
    }
    

    这是调用它的控制器。

    //Create a structure for rawData
    $scope.rawData = graph.parseCSV;
    debugger
    

    提前感谢您的帮助!

0 个答案:

没有答案