2016-09-09 1 views
0

j'ai 2 collections qui vont comme:Meteor JS - modèle même qui utilise plusieurs collections

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

Je veux être en mesure de le faire:

{{> posts}} 

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

Jusqu'à présent, je l'ai vu que Je ne peux pas utiliser les données de 2 collections différentes dans le même modèle. Des idées comment puis-je y parvenir?

Merci d'avance.

+2

Je ne sais pas ce que vous a fait croire que vous ne pouvez pas le faire. Il suffit de créer 2 assistants de modèle qui récupèrent les données des collections correspondantes et vous serez en mesure d'itérer sur les résultats. – MasterAM

Répondre

1

Je suppose que vous avez utilisé publier et vous abonner avec iron-router. Vous pouvez atteindre votre objectif dans l'une des manières suivantes:

Méthode 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(); 
     } 

}); 

Méthode 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

Fonctionne, merci beaucoup! –