我在我的Javascript应用中动态加载Papaparse,如下所示:
$.getScript('path/to/papaparse.js',function() {
//below script
});
然后我得到这样的解析文件。
$('#csv_file').parse({
delimiter: ",",
worker: true,
skipEmptyLines: true,
before: function(file,inputElement) {
console.log(file);
console.log(inputElement);
},
error: function(err, file, inputElement, reason) {
console.log('error');
console.log(err);
console.log(file);
console.log(inputElement);
console.log(reason);
},
step: function(results,parser) {
console.log(results);
console.log(parser);
},
complete: function(results,file) {
console.log(results);
console.log(file);
}
});
console.log
- 回调中的step
{{}}都没有触发,但是它们会从before
- 和complete
- 回调中打印出来。
before:
file:
File {}
lastModified: 1437396586321
lastModifiedDate: Mon Jul 20 2015 14:49:46 GMT+0200 (South Africa Standard Time)
name: "normal.csv"
size: 254743
type: "application/vnd.ms-excel"
webkitRelativePath: ""
inputElement:
<input type="file" name="csv_file" id="csv_file" class="form-control half">
complete:
results: undefined
file: undefined
有人可以告诉我为什么 a)它没有在step
中回复任何内容 - 回调和 b)为什么会这样做在undefined
- 回调中返回complete
?
我按照评论中的建议添加了SCRIPT_PATH
:
$.getScript('path/to/papaparse.js',function() {
Papa.SCRIPT_PATH = config.basedir + '/app/lib/papaparse/papaparse.min.js';
// Papa script
});
之前改变了我的想法:
before: function(file,inputElement) {
console.log(file);
console.log(inputElement);
return { action : 'continue' }
},
但仍然未定义。
答案 0 :(得分:0)
您可以尝试在之前的功能中明确返回{ action="continue" }
吗?
您可能会遇到此问题的变体 - https://github.com/mholt/PapaParse/issues/18
答案 1 :(得分:0)
所以解决方案非常简单。 complete: function(results,file)
和step:function(results,parser)
需要在配置文件中,因为这是每个文件配置。
如果没有为每个文件定义,显然步骤不会运行。