2017-07-21 7 views
0

私はMongoDBの中で、複数の配列で「PIDS」という名前のコレクションがあります。今、私は、テーブルには、コレクションのデータに変更が同じように変化するようにHTMLテーブルに動的にこれらの要素をレンダリングしたいMeteor - mongoDBの複数の配列を{{each}}でテーブルに表示するには?

{ 
    "_id" : "Coms>f41a3480af751a7a", 
    "pIds" : [ 
     "pid_833d82c2f32b7dc0", 
     "pid_833d82c2f32b7dc0", 
     "pid_833d82c2f32b7dc0", 
    ], 
    "dudes" : [ 
     "AB", 
     "AC", 
     "BC" 
    ], 
    "ho" : [ 
     "Coms>f41a3480af751a7a", 
     "Coms>f41a3480af751a7a", 
     "Coms>f41a3480af751a7a" 
    ], 
    "ps" : [ 
     "vf", 
     "ou", 
     "rwf" 
    ], 

} 

を。したがって、新しい要素がコレクション "pIds"に書き込まれると、テーブルには新しい要素が自動的に追加されます。私は{{each}}を使うことを考えました。

JS-ヘルパー:

Template.home.helpers({ 
    'pIdsRendering': function() { 
    if (Meteor.userId()) { 
    var pId = pIds.find({'_id': Session.get('pIdshome')}).fetch(); 

    return pId; 
    } 
}, 
}); 

HTML:

     <tbody> 

{{#each pIdsRendering}} 

     {{#each pIds}} 

          <tr><td>{{this}}</td></tr> 
      {{/each}} 
{{/each}} 

{{#each pIdsRendering}} 

     {{#each dudes}} 

          <tr><td>{{this}}</td></tr> 

     {{/each}} 

    {{/each}} 
      [...and so on...] 

         </tbody> 

は実はこれが動作し、新しい要素がテーブルに追加されているが、私はちょうどの右のセルにコンテンツを入れcan'tテーブル。これは、すべてのテーブルのデータのように1列の内容は次のように書かれます置く:だから

enter image description here

、私はそれが「論理的順序」についてだと思いますが、私はちょうどそれを成し遂げることができません。最後..In表には、次のようになります。

enter image description here

答えて

1

あなたはすべての配列項目のための新しい<tr>タグを作成し、これは、すべての項目が新しい行である理由です。コレクションのスキーマを少し変更することをお勧めします。私は以下のようにそれを行うだろう:

{ 
    "_id" : "Coms>f41a3480af751a7a", 
    "data": [ 
    { 
     "pid": "pid_833d82c2f32b7dc0", 
     "dude": "AB", 
     "ho": "Coms>f41a3480af751a7a", 
     "ps": "vf" 
    }, 
    { 
     "pid": "pid_833d82c2f32b7dc0", 
     "dude": "AC", 
     "ho": "Coms>f41a3480af751a7a", 
     "ps": "ou" 
    }  
    ] 
} 

は、その後、あなたのブレイズテンプレートであなたは、レコードあなたの実際のスキーマは予期しないエラーが発生することがはるかに簡単

{{ #each record }} 
    {{ #each data }} 
    <tr> 
     <td>{{ pid }}</td> 
     <td>{{ dude }}</td> 
     <td>{{ ho }}</td> 
     <td>{{ ps }}</td> 
    </tr> 
    {{ /each }} 
{{ /each }} 

を表示することができます。例えば、pIdsアレイの場合、dudesより多くの要素があります。それを検証することはより困難です。オブジェクトを使用することで、はるかに簡単に行うことができます。また、pIds [index]要素をdudes [index]要素にバインドしたいと思います。この場合、あなたが行ったような配列を使うのは正しい方法ではありません。

+0

あなたの回答は完璧、多くのありがとう!データスキーマをオブジェクトに変更すると、ずっと簡単になります。さらに、あなたは正しいです。私はpIds [index]をdudes [index]とバインドしたいと思います。これはオブジェクトを使うことではるかに簡単です。 – Jaybruh

関連する問題