我正在制作一个Meteor.js应用程序,并通过Papaparse.js导入.csv文件,我将其保存在Mongo集合中,以便以后在表格中使用。数据保存在标准的Papaparse.js结构中:
results = {
data: [ ... ], // parsed data
errors: [ ... ], // errors encountered
meta: { ... } // extra parse info
}
数据阵列如下所示(来自Chrome控制台): image
我在前端视图中输出它,此数据显示为表格。但有时,数据全部未分类。如果我将数据库移动到另一台服务器或将数据库导入本地,通常会发生这种情况。请查看此图片以进行比较:image
问题是为什么, 我可以解决它。
这是我的表格模板: (请注意,projectData.data来自Iron Router,它是Papaparse数据(results.data))
<template name="table">
<div class="table-responsive">
<table class="table table-striped table-hover sortable-theme-bootstrap table-fixedheader" data-sortable>
<thead>
<tr>
{{#each addStatusColToArray projectData.meta.fields}}
<th>{{this}}</th>
{{/each}}
<th class="data-controls-header"></th>
</tr>
</thead>
<tbody>
{{#each projectData.data}}
<tr>
{{#each tableObjectToKeyPairs this}}
<td class="{{key}}">
{{value}}
</td>
{{/each}}
<td class="data-controls">
<span class="glyphicon glyphicon-menu-right" aria-hidden="true"></span>
</td>
</tr>
{{/each}}
</tbody>
</table>
</div>
</template>
这是相应的JS文件:
Template.embedTable.helpers({
rowClassPropId: function (parentContext) {
var colLink = parentContext.projectData.meta.colLink;
var propId = this[colLink];
return propId;
},
tableObjectToKeyPairs: function (object) {
var filteredObject = _.omit(object, "_id"); // Omit the "_id" value
return _.map(filteredObject, function (value, key) {
return {
key: key,
value: value
};
});
}
});
Template.registerHelper("addStatusColToArray", function (array) {
if (array) {
array.push("Status"); // Pushes the "Status" last into array
return array; // Returns the modified array
}
});