我正在使用实施Tabular package的Meteor DataTables。我正在尝试从Mongo集合创建一个表。该集合有一个
形式的文档{
input: Array[365],
output: Array[365],
date: Array[365]
}
我使用以下代码
在Meteor中定义表格TabularTables.MyTable = new Tabular.Table({
name: "MyTable",
collection: MyTable,
columns: [
{data: "input", title: "Input", searchable: false},
{data: "output", title: "Output", searchable: false},
{data: "date", title: "Date", searchable: false}
],
order: [[1, "desc"]],
pageLength: 10
});
问题在于,当绘制它时,每个变量的所有365个元素最终都在一个单元格中,所以我有一个大的行。我希望每个元素都在一个单独的行中创建,即
Input Output Date
input[0] output[0] date[0]
input[1] output[1] date[1]
虽然它目前是
Input Output Date
input[0...364] output[0...364] date[0...364]
答案 0 :(得分:3)
您将需要转换数据然后将其放入本地集合中,因为该包不接受数组(与我之前的想法相反)。
这似乎有效:
TabularTables = {};
local = new Meteor.Collection();
var data = MyTable.findOne();
if (data) {
local.find().forEach(function(x) { local.remove(x._id) });
for (var i in data.input) {
local.insert({
input: data.input[i],
output: data.output[i],
date: data.date[i]
});
}
}
TabularTables.MyTable = new Tabular.Table({
name: "MyTable",
collection: local,
columns: [
{data: "input", title: "Input", searchable: false},
{data: "output", title: "Output", searchable: false},
{data: "date", title: "Date", searchable: false}
],
order: [[1, "desc"]],
pageLength: 10
});
请注意,这可能不再具有反应性。但是我假设你在那些大数组中的数据也不会改变,否则你可能会改变你的架构以便与meteor开始时更加兼容。所以希望这不是问题。
答案 1 :(得分:1)
由于TabularTables不允许使用数组,因此您可以尝试使用aslagle:reactive-table Meteor包。包的git page上的示例显示了如何在阵列上使用mongo的语法。