Twoim jedynym problemem jest próba iteracji kursora i podtablicy w tym samym każdym bloku. Jeśli oddzielisz items
szablon i indywidualny item
szablon, otrzymasz pożądany wynik.
W celu uproszczenia zmieniłem Twój kod, aby wyglądał tak:
To jest twoje główne ciało:
<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>
A to jest Twój pomocnik:
Template.items.helpers({
items: function () {
return Items.find();
}
})
Zakładając, że dokument towaru wygląda następująco:
{
itemText: String,
itemTags: Array
}
Stworzyłem aplikację na Meteorpad, z którą możesz się bawić:
http://meteorpad.com/pad/BmRQ5fkwWEMBKszJW/SO-27951102
możesz dalej zmieniać tam kod i zobaczyć zmiany w czasie rzeczywistym. Jest to w zasadzie jsfiddle dla meteoru.
Edytuj: zainspirowany komentarzem @chip-castle, możesz w rzeczywistości użyć jednego szablonu z zagnieżdżonym each
bloki:
<template name="items">
{{#each items}}
<h2>{{itemText}} tags are:</h2>
<ul>
{{#each itemTags}}
<li>{{this}}</li>
{{/each}}
</ul>
{{/each}}
</template>
Ale używanie osobnych szablonów jest bardziej elastyczne zarówno pod względem projektowania, jak i obsługi zdarzeń tam, gdzie to konieczne.