2

我正在关注Meteor 入门这本书,我真的没有走多远,因为简单的错误一直在阻止我。

此时,我已经开始编写本书中的初始应用程序,我们在其中建立了新的全球连接。

Lists = new Meteor.Collection("lists");

然后我们将一些数据添加到该集合中。

lists.insert({Category:"DVDs", items: {Name:"Item Name",Owner:"me",LentTo:"Internet"}})

我可以通过在控制台中检查来验证是否输入了数据

lists.find({}).count(); //returns 2 
lists.findOne({Category:"DVDs"}) //returns the DVD category

但是,当我尝试在 DOM 中显示此内容时,没有显示任何内容。

<div id="categories-container">
  {{> categories}}
</div>

<template name="categories">

   <div class="title"><h3>My Stuff</h3></div>

    <div id="categories">
       {{#each lists}}
          <div class="category">
            {{Category}}
         </div>
       {{/each}}
    </div>
</template>

这仅显示我的标题。我在浏览器控制台或命令行控制台中没有错误。不确定如何诊断。

4

4 回答 4

4

我很确定原因是因为你有

    Lists = new Meteor.Collection("lists");

但是你这样做:

    lists.insert({Category:"DVDs", items: {Name:"Item Name",Owner:"me",LentTo:"Internet"}})
    lists.find({}).count(); //returns 2 
    lists.findOne({Category:"DVDs"}) //returns the DVD category

但你应该这样做

    Lists.insert({Category:"DVDs", items: {Name:"Item Name",Owner:"me",LentTo:"Internet"}})
    Lists.find({}).count(); //returns 2 
    Lists.findOne({Category:"DVDs"}) //returns the DVD category

因为它区分大小写。然后在你的模板助手中做一个 Lists.find({}) 你应该很高兴。

于 2013-09-16T04:12:00.333 回答
2

您是否定义了一个模板助手来显示您的内容?

你可能需要:

Template.categories.lists = function() {
  return Lists.find({});
};

查看文档以了解具体信息:

http://docs.meteor.com/#templates

对于类别的分面,您可能需要设置一个反应式会话值。

于 2013-09-15T15:22:18.383 回答
0

为了让您更轻松地阅读 Discover Meteor 这本书:如果您有软件可以比较两个目录,请从 git 中将这本书与您正在输入的目录放在一个并行目录中。然后,当您遇到问题时,转到该目录终端和 git checkout 章节。现在,比较这两个文件夹,您会看到拼写错误。

在互联网上学习快速发展的东西是一个艰难的过程。您发现的许多教程仅在一段时间内有效。

但流星书不同。他们保持代码正常。我亲自打字,发现我的错误在更好的阅读中得到了解决(并且通常更少认为我知道我在做什么)。我已经和两个 20 多岁的人谈过了,他们也在很长一段时间内不断做出新的和创造性的标点符号或拼写选择。还有

meteor add xxx
meteor remove xxx

容易错过的命令。

但是请相信那个来源(假设你刚刚得到它,并且不是从一些旧的 pdf 工作)并怀疑自己,只是为了本教程。:)

于 2013-09-16T06:13:19.350 回答
0

通过关闭此处的评论并阅读更多内容,原因是没有任何东西告诉流星模板已定义。

这是通过以下代码解决的:

Template.categories.lists = function (){
   return Lists.find({}, {sort: {Category: 1}});
}

这告诉它查找 Lists 集合中的所有记录并按类别对它们进行排序。

于 2013-09-17T01:42:32.670 回答