2016-01-15 7 views
9

DataTablesを実装するメーターTabular packageを使用しています。私はMongoコレクションからテーブルを作成しようとしています。コレクションは、私は問題は、これが描画される場合、各変数のすべての365個の要素は、で終わることにある次のコードDataTables(Meteor Tabular)で配列の各要素を新しい行に描画します

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 
}); 

と流星のテーブルを定義するフォーム

{ 
    input: Array[365], 
    output: Array[365], 
    date: Array[365] 
} 

の一つの文書を有します私は1つの大規模な行を持っています。私は、各要素は別々の行で作成することにしたい、すなわち

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

データを{input:...、出力:...、日付:...}のリストに変換することは手頃ですか?これが可能であれば、それはdataTableが処理するのが簡単です –

答えて

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 
}); 

注意これはもはや反応性でないこと:

これは動作するようです。しかし、私は、それらの大きな配列のあなたのデータがどちらかに変更されないと仮定しています。そうでなければ、おそらく流星との互換性がより高くなるようにスキーマを変更します。だからうまくいけばそれは問題ではない。

+0

あなたの提案に続いて、エラー:「エラー:Tabular.Tableのオプションはコレクションを指定する必要があります」 –

+0

ああ、そうです。そのパッケージは実際に配列を受け入れません(私は別のものを考えていました)。私はそれに応じて私の答えを更新しました。 –

+0

私はMongoに直接新しいコレクションを作成するためのスクリプトを書いてしまいました。ストレージオーバーヘッドは気にせず、最も簡単なルートでした。 –

1

TabularTablesでは配列が使用できないため、代わりにaslagle:reactive-table Meteorパッケージを試してみることができます。パッケージのgit pageの例は、あなたの配列上でどのようにmongoの構文を使用できるかを示しています。

関連する問題