我是Javascript和Meteor的新手 - 我确信我犯的是一个非常基本的错误。
我正在尝试了解如何显示集合的内容。
这是基于Meteor网站上的教程 - 我已将'任务'替换为'sw',这也是我的收藏品的名称
Template.HomePrivate.helpers({
});
sw = new Mongo.Collection("sw");
if (Meteor.isClient) {
// This code only runs on the client
Template.body.helpers({
text: function () {
return sw.find({});
}
});
}
HTML:
<template name="HomePrivate">
<div class="page-container container" id="content">
<div class="row" id="title_row">
<div class="col-md-12">
<h2 id="page_title" class="pull-left">
Welcome {{userFullName}}!
</h2>
<div id="page_menu" class="pull-right">
</div>
</div>
</div>
</div>
<div class="container">
<header>
<h1>Sight Words</h1>
</header>
<p>begin list</p>
<ul>
{{#each sw}}
{{> sw}}
{{/each}}
</ul>
<p>end list</p>
</div>
</template>
<template name="sw">
<li>{{text}}</li>
</template>
答案 0 :(得分:0)
您的#each循环未显示任何内容,因为sw未定义为帮助程序:
{{#each sw}}
{{> sw}}
{{/each}}
Blaze在使用#each循环时会查找助手名称 - 我认为这就是你的困惑所在。在这种情况下,您希望使用上面定义的帮助程序text
:
{{#each text}}
{{> sw}}
{{/each}}
sw
尚未被定义为帮助者,因此Blaze无法识别它。
现在,{{> sw}}
是有效的语法,因为它被定义为模板(这就是&gt;符号的用途)。假设您的sw集合中有一个字段text
,那么现在应该正确显示#each循环。