sql >> Database teknologi >  >> NoSQL >> MongoDB

Returnerer underdokumentarray gennem Meteor / Mongo

Dit eneste problem er at forsøge at iterere en markør og et underarray inden for den samme blok. Hvis du adskiller dine items skabelon og en individuel item skabelon, vil du ende med dit ønskede resultat.

For forenklingens skyld har jeg ændret din kode til at se sådan ud:

Dette er din hoveddel:

<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>

Og dette er din hjælper:

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

Forudsat at et varedokument ser sådan ud:

{ 
  itemText: String,
  itemTags: Array
}

Jeg har lavet en app på Meteorpad, som du kan lege med:

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

du kan yderligere ændre koden der og se ændringerne i realtid. Det er dybest set jsfiddle for meteor.

Rediger: inspireret af @chip-castles kommentar kan du faktisk bruge en enkelt skabelon med indlejret each blokke:

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

Men at bruge separate skabeloner er mere fleksibel i både design og håndtering af begivenheder, hvor det er nødvendigt.



  1. Skift en boolesk værdi med mongoDB

  2. 5 måder at få måneden fra en dato i MongoDB

  3. $ projektion i mongoDB findOneAndUpdate()

  4. Hvor skal jeg tilføje --rest-indstillingen til MongoDB?