Meteor入门 - 显示集合

时间:2016-03-08 00:22:46

标签: javascript meteor meteor-helper

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

1 个答案:

答案 0 :(得分:0)

您的#each循环未显示任何内容,因为sw未定义为帮助程序:

{{#each sw}}
  {{> sw}}
{{/each}}

Blaze在使用#each循环时会查找助手名称 - 我认为这就是你的困惑所在。在这种情况下,您希望使用上面定义的帮助程序text

{{#each text}}
  {{> sw}}
{{/each}}

sw尚未被定义为帮助者,因此Blaze无法识别它。

现在,{{> sw}}是有效的语法,因为它被定义为模板(这就是&gt;符号的用途)。假设您的sw集合中有一个字段text,那么现在应该正确显示#each循环。