流星收藏不显示

Meteor Collections are not displaying

本文关键字:显示 收藏 流星      更新时间:2023-09-26

我正在关注《流星入门》一书,我真的走不远,因为简单的错误一直阻止我。

在这个时间点,我已经开始在书中编写最初的应用程序,我们在书中建立了新的全球联系。

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>

这将仅显示我的标题。我在浏览器控制台或命令行控制台中没有收到任何错误。不知道如何诊断。

我很确定原因是因为你有

    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({}),你应该很高兴。

是否定义了模板帮助程序来显示内容?

您可能需要:

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

查看文档以了解详细信息:

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

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

为了让你在《发现流星》这本书上的时间更轻松:如果你有可以比较两个目录的软件,请从并行目录中的 git 获取这本书,以输入你正在输入的内容。 然后,当您遇到问题时,请转到终端中的该目录并 git 签出该章节。 现在,比较这两个文件夹,您将看到拼写错误。

在互联网上学习快速发展的东西是一个艰难的过程。 您找到的许多教程只能在一段时间内工作。

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

meteor add xxx
meteor remove xxx

容易错过的命令。

但是请相信该来源(假设您刚刚得到它,并且没有使用一些旧的pdf)并怀疑自己,只是为了本教程。 :)

通过删除此处的评论并阅读更多内容,原因是因为没有任何迹象表明模板已定义。

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

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

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