sql >> Databasteknik >  >> NoSQL >> MongoDB

Returnerar underdokumentarray genom Meteor / Mongo

Ditt enda problem är att försöka iterera en markör och en undermatris inom samma varje block. Om du separerar dina items mall och ett enskilt item mall, kommer du att få ditt önskade resultat.

För förenklingens skull ändrade jag din kod så att den ser ut så här:

Det här är din huvuddel:

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

Och det här är din hjälpare:

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

Förutsatt att ett objektdokument ser ut så här:

{ 
  itemText: String,
  itemTags: Array
}

Jag har skapat en app på Meteorpad som du kan leka med:

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

du kan ytterligare ändra koden där och se ändringarna i realtid. Det är i princip jsfiddle för meteor.

Redigera: inspirerad av @chip-castles kommentar kan du faktiskt använda en enda mall med kapslad each block:

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

Men att använda separata mallar är mer flexibelt i både design och hantering av händelser där det behövs.



  1. Hitta den totala tiden som en användare spenderar i mongoDB

  2. Hur får jag åtkomst till inbäddade json-objekt i en Pandas DataFrame?

  3. JavaScript NoSQL-injektionsförebyggande i MongoDB

  4. kan inte konvertera från 'MongoDB.Driver.IMongoCollection<>' till 'System.Collections.Generic.IEnumerable<>'