MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Retourner un tableau de sous-documents via Meteor / Mongo

Votre seul problème est d'essayer d'itérer un curseur et un sous-tableau dans le même bloc. Si vous séparez vos items modèle et un item individuel modèle, vous obtiendrez le résultat souhaité.

Par souci de simplification, j'ai modifié votre code pour qu'il ressemble à ceci :

Voici votre corps principal :

<body>
    {{> items}}
</body>

<template name="items">
  {{#each items}}
    {{> item}}
  {{/each}}
</template>

<template name="item">
  <h2>{{itemText}} tags are:</h2>
  <ul>
  {{#each itemTags}}
    <li>{{this}}</li>
  {{/each}}
  </ul>
</template>

Et voici votre aide :

Template.items.helpers({
  items: function () {
    return Items.find();
  }
})

En supposant qu'un document d'article ressemble à :

{ 
  itemText: String,
  itemTags: Array
}

J'ai créé une application sur Meteorpad avec laquelle vous pouvez jouer :

http://meteorpad.com/pad/BmRQ5fkwWEMBKszJW/SO-27951102

vous pouvez y modifier davantage le code et voir les changements en temps réel. C'est essentiellement jsfiddle pour météore.

Modifier : inspiré par le commentaire de @chip-castle, vous pouvez en fait utiliser un seul modèle avec each imbriqué blocs :

Les balises
<template name="items">
  {{#each items}}
    <h2>{{itemText}} tags are:</h2>
    <ul>
    {{#each itemTags}}
      <li>{{this}}</li>
    {{/each}}
    </ul>
  {{/each}}
</template>

Mais l'utilisation de modèles distincts est plus flexible à la fois dans la conception et dans la gestion des événements si nécessaire.