sql >> Base de Datos >  >> NoSQL >> MongoDB

Devolver matriz de subdocumento a través de Meteor / Mongo

Su único problema es intentar iterar un cursor y una matriz secundaria dentro de cada bloque. Si separa sus items plantilla y un item individual plantilla, obtendrá el resultado deseado.

En aras de la simplificación, modifiqué su código para que se vea así:

Este es su cuerpo 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>

Y este es tu ayudante:

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

Suponiendo que el documento de un artículo se parece a:

{ 
  itemText: String,
  itemTags: Array
}

Creé una aplicación en Meteorpad para que juegues:

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

puede modificar aún más el código allí y ver los cambios en tiempo real. Básicamente es jsfiddle para meteorito.

Editar: inspirado en el comentario de @chip-castle, de hecho, puede usar una sola plantilla con each anidados bloques:

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

Pero usar plantillas separadas es más flexible tanto en el diseño como en el manejo de eventos cuando sea necesario.