Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PapaParse生成的数组未填充ng repeat_Javascript_Angularjs_Csv_Papaparse - Fatal编程技术网

Javascript PapaParse生成的数组未填充ng repeat

Javascript PapaParse生成的数组未填充ng repeat,javascript,angularjs,csv,papaparse,Javascript,Angularjs,Csv,Papaparse,我试图上传一个csv,然后通过PapaParse将其运行到JSON中。解析后,我将其存储为$scope.dataTable,并正确地登录到控制台,但它没有填充我的ng repeat,我也不知道为什么 var app = angular.module('rainApp', []); app.controller('mainCtrl', function($scope) { $scope.dataTable = []; $scope.csv = document.getElemen

我试图上传一个csv,然后通过PapaParse将其运行到JSON中。解析后,我将其存储为$scope.dataTable,并正确地登录到控制台,但它没有填充我的ng repeat,我也不知道为什么

var app = angular.module('rainApp', []);
app.controller('mainCtrl', function($scope) {
    $scope.dataTable = [];

    $scope.csv = document.getElementById("file-input");

    function buildTable(a) {
        $scope.dataTable = a;
        console.log($scope.dataTable);
    }

    function dataToJson(data, callback) {
        Papa.parse(data, {
            header: false,
            complete: function(results) {
                callback(results.data);
            }
        });
    }

    $scope.csv.addEventListener("change", function() {
        data = this.files[0];
        dataToJson(data, buildTable);
    });
});
我加载上面的角度脚本

  <div ng-controller="mainCtrl">
    <input id="file-input" type="file" accept=".csv" />
<div ng-repeat="item in dataTable">
  <h1>{{item}}</h1>
</div>

  </div>
$scope.dataTable=a之后; 尝试添加此新行:


$scope.$apply

json格式正确吗?它必须是json数组。你能把console.log datatablePapaparse不处理JSON时显示的内容粘贴到这里吗?你的代码也不处理JSON,你得到的是一个javascript数组,这很好,因为行$scope.dataTable=a;需要数组,而不是JSON字符串。。。所以,重复一次,这个问题在任何方面都与JSON无关,根据PapaParse文档,它就是这样说的,如果来自PapaParse的results.data只是一个数组,我想我可以找出如何将它变成JSON。你根本不想在你的代码中使用JSON——阅读关于将JSON转换为CSV的papparse文档,输入是一个数组或一个对象数组。。。这两个都不是JSON——PapaParse的作者对JSON有一个普遍的错觉。我广泛使用PapaParse,从来没有做过任何JSON解析或stringify来处理PapaParse函数的结果/输入数据。我将删除标记,感谢您的帮助。感谢您的帮助,非常有效。。。现在我只需要深入了解原因:你知道,当你在视图上绑定某个东西时,添加一个观察者。当您有异步任务时,您必须通知观察者。例如,在$http、$timeout..etc的实现中,在末尾有一个$scope.$apply。这意味着事件从根作用域到所有子作用域的角度传播将在视图和模型之间同步数据,从而更新所有观察者。因为使用papau是在框架外使用async,所以您必须显式地刷新观察器。啊,这很有意义,我非常感谢您的响应!谢谢
[
  {
    "Township": "T024R01W5",
    "Date": "1955-01-01",
    "Precip. (mm)": "0.8"
  },
  {
    "Township": "T024R01W5",
    "Date": "1955-01-02",
    "Precip. (mm)": "0.3"
  },
  {
    "Township": "T024R01W5",
    "Date": "1955-01-03",
    "Precip. (mm)": "0.0"
  },
  {
    "Township": "T024R01W5",
    "Date": "1955-01-04",
    "Precip. (mm)": "0.0"
  },
  {
    "Township": "T024R01W5",
    "Date": "1955-01-05",
    "Precip. (mm)": "0.0"
  },
  {
    "Township": "T024R01W5",
    "Date": "1955-01-06",
    "Precip. (mm)": "0.0"
  },
  {
    "Township": "T024R01W5",
    "Date": "1955-01-07",
    "Precip. (mm)": "0.0"
  },
  {
    "Township": "T024R01W5",
    "Date": "1955-01-08",
    "Precip. (mm)": "0.0"
  },
  {
    "Township": "T024R01W5",
    "Date": "1955-01-09",
    "Precip. (mm)": "0.0"
  },
  {
    "Township": "T024R01W5",
    "Date": "1955-01-10",
    "Precip. (mm)": "0.0"
  },
  {
    "Township": "T024R01W5",
    "Date": "1955-01-11",
    "Precip. (mm)": "0.0"
  },
  {
    "Township": "T024R01W5",
    "Date": "1955-01-12",
    "Precip. (mm)": "0.0"
  },
  {
    "Township": "T024R01W5",
    "Date": "1955-01-13",
    "Precip. (mm)": "2.3"
  },
  {
    "Township": "T024R01W5",
    "Date": "1955-01-14",
    "Precip. (mm)": "0.0"
  },
  {
    "Township": "T024R01W5",
    "Date": "1955-01-15",
    "Precip. (mm)": "0.0"
  },
  {
    "Township": "T024R01W5",
    "Date": "1955-01-16",
    "Precip. (mm)": "0.0"
  },
  {
    "Township": "T024R01W5",
    "Date": "1955-01-17",
    "Precip. (mm)": "0.8"
  },
  {
    "Township": ""
  }
]