我遇到了一个问题,或者更可能是对传递到Meteor上模板的变量的误解。我想做一些非常简单的事情;我有一本文章集。每一篇文章都有一个相应的内部标签数组。
模板文章
<template name="articles">
<div class="row">
<div class="small-12 small-centered columns">
{{#each articles}}
{{> _article}}
{{/each}}
</div>
</div>
</template>
部分粒子
<template name="_article">
<div class="article-container small-12 columns">
<div class="article-header small-12 columns">
<h1 class="left">Titre: {{title}}</h1>
<button class="right delete">×</button>
</div>
<article class="overview small-12 columns">
<h2>Categorie: {{nameCateg}}</h2>
<h2>{{createdAt}}</h2>
<p>{{content}}</p>
</article>
<div class="article-footer small-12 columns">
<p>Tags:
{{#each tags}} // I want to do something like that...
lbl: {{tag.label}}
{{/each}}
</p>
</div>
</div>
</template>
用蒙古语检查一篇文章
{
"_id:" "c47cezerzerz",
"title": "titre,
"tags"[
{"id": "aurtht58",
"label": "tag1"},
{"id": "aurthfe8",
"label": "tag2"}
]
}
当我尝试在标签上使用#each进行迭代时,标签似乎指的是整个标签集合,而不仅仅是内部标签列表。如何解决?
所以我可能遗漏了一些东西,比如这些变量的范围。。。事实上,我真的不知道它们是如何工作的。。。
{{#each}}
内的上下文是一个子上下文,主要关注当前正在迭代的文档
例如以下文档:
{
foo : [
{
bar : 1
},
{
bar : 2
}
]
}
你可以这样使用它:
{{#each foo}}
<p>bar is : {{bar}} and also {{this.bar}}</p>
{{/each}}
因此,在您的情况下,直接引用字段({{label}}
,…(
查找首先在当前模板上下文上进行,然后在其辅助对象上进行,再向上查找全局辅助对象
模板上下文是一个完整的主题,是SpaceBars文档中的一个很好的起点。
我认为,在访问tags
级别之前,您需要对游标进行迭代。(待确认(。如果添加fetch()
或使用collection.findOne()
,则会使用collection.find()
获得光标。您会获得一个数组(在您的情况下,您只访问文档中的一个数组(,并且空格键迭代的规则正在更改。
您需要使用{{this}}
访问标签,并使用{{this.label}}
访问标签项