2016-09-09 4 views
0

у меня есть 2 коллекции, которые идут, как:Метеор JS - тот же шаблон, который использует несколько коллекций

Posts = new Mongo.Collection('posts'); 
Pinned = new Mongo.Collection('pinned'); 

Я хочу быть в состоянии сделать это:

{{> posts}} 

<template name='posts'> 
    {{#each posts}} 
     <!-- code goes here --> 
    {{/each}} 
    {{#each pinned}} 
     <!-- code goes here --> 
    {{/each}} 
</template> 

До сих пор я видел, что Я не могу использовать данные из двух разных коллекций в одном шаблоне. Любые идеи, как я могу это достичь?

Заранее спасибо.

+2

Я не знаю, что заставило вас поверить, что вы не можете сделать это. Просто создайте 2 шаблонных помощника, которые извлекают данные из соответствующих коллекций, и вы сможете перебирать результаты. – MasterAM

ответ

1

Я предполагаю, что вы использовали публикацию и подписку на железо-маршрутизатор. Вы можете достичь своей цели в любой из следующих способов:

Метод 1:

Html

<template name="posts"> 
    {{#each posts}} 
     <!-- code here--> 
    {{/each}} 

    {{#each pinned}} 
     <!-- code here --> 
    {{/each}} 
</template> 

Js

Template.posts.helpers({ 
     posts : function(){ 
      return Posts.find().fetch(); 
     }, 
     pinned : funcion(){ 
      return Pinned.find().fetch(); 
     } 

}); 

Метод 2:
Html

<template name="posts"> 
    {{#each posts}} 
      <!-- code here --> 
    {{/each}} 

    {{> pinned}} 

</template> 

<template name="pinned"> 
    {{#each pinned}} 
      <!-- code here --> 
    {{/each}} 
</template> 

Js

Template.posts.helpers({ 
     posts : function(){ 
     return Posts.find().fetch(); 
}); 
Template.pinned.helpers({ 
     pinned : function(){ 
     return Pinned.find().fetch(); 
    }); 
+0

Работает, спасибо большое! –

Смежные вопросы