我有一个问题,或者更可能是在Meteor上传递给模板的变量误入歧途。 我想做一些非常简单的事情;我收集了一些文章。每篇文章都有一个相应的内部Tags数组。
模板文章
<template name="articles">
<div class="row">
<div class="small-12 small-centered columns">
{{#each articles}}
{{> _article}}
{{/each}}
</div>
</div>
</template>
partial _article
<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>
使用Mongol检查一篇文章
{
"_id:" "c47cezerzerz",
"title": "titre,
"tags"[
{"id": "aurtht58",
"label": "tag1"},
{"id": "aurthfe8",
"label": "tag2"}
]
}
当我尝试使用标签上的#each进行迭代时,标签似乎引用整个标签集合,而不仅仅是内部标签列表。如何解决?
所以我可能会错过一些东西,比如这些变量的范围......实际上我真的不知道它们是如何工作的......
答案 0 :(得分:1)
{{#each}}
内的上下文是一个子上下文,主要关注当前正在迭代的文档
例如,使用以下文档:
{
foo : [
{
bar : 1
},
{
bar : 2
}
]
}
您可以这样使用它:
{{#each foo}}
<p>bar is : {{bar}} and also {{this.bar}}</p>
{{/each}}
因此,在您的情况下,直接引用字段({{label}}
,...)
查询首先在当前模板上下文中完成,然后在其帮助程序上完成,然后向上和向上执行全局帮助程序。 模板上下文是一个完整的主题,是SpaceBars documentation中的一个很好的起点。
答案 1 :(得分:1)
我认为在您访问tags
级别之前,您会迭代游标。 (待确认)。如果添加collection.find()
或使用fetch()
获得数组(在您的情况下,您只是访问文档中的数组)并且规则正在更改,则使用collection.findOne()
获取游标用于空格键迭代。
您需要使用{{this}}
访问代码,并使用{{this.label}}