原创
我在我的Javascript应用程序中实时加载帕帕帕斯,如下所示:
$.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-callback失火中,但它们是从before和complete-callbacks打印出来的。
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-callback和b)中的任何东西--为什么要在complete-callback中返回undefined?
更新
我在下面的评论中添加了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' }
},然而,仍未确定。
发布于 2015-07-21 07:55:31
所以解决办法很简单。complete: function(results,file)和step:function(results,parser)需要在配置文件中,因为这是每个文件的配置。
显然,如果没有在每个文件中定义步骤,它就不会运行。
发布于 2015-07-20 14:55:23
您是否可以尝试显式地在前面的函数中返回一个{ action="continue" }?您可能会遇到这个问题的一个变体- https://github.com/mholt/PapaParse/issues/18。
https://stackoverflow.com/questions/31517525
复制相似问题