使用DataTables(Meteor Tabular)在新行中绘制数组的每个元素

Phi*_*ien 9 javascript datatables meteor

我正在使用实现DataTables的Meteor Tabular包.我正在尝试从Mongo集合创建一个表.该集合有一个表单文档

{
  input: Array[365],
  output: Array[365],
  date: Array[365]
}
Run Code Online (Sandbox Code Playgroud)

我使用以下代码在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
});
Run Code Online (Sandbox Code Playgroud)

问题是,当绘制它时,每个变量的所有365个元素最终都在一个单元格中,所以我有一个大的行.我希望每个元素都在一个单独的行中创建,即

Input      Output      Date
input[0]   output[0]   date[0]
input[1]   output[1]   date[1]
Run Code Online (Sandbox Code Playgroud)

而它目前

Input            Output            Date
input[0...364]   output[0...364]   date[0...364]
Run Code Online (Sandbox Code Playgroud)

Chr*_*itz 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
});
Run Code Online (Sandbox Code Playgroud)

请注意,这可能不再是反应性的。但我假设这些大数组中的数据也不会改变,否则您可能会首先更改架构以与流星更加兼容。所以希望这不是问题。