Javascript 流星收藏未显示

Javascript 流星收藏未显示,javascript,mongodb,meteor,Javascript,Mongodb,Meteor,我一直在关注《流星入门》这本书,但我真的没有走多远,因为简单的错误一直阻碍着我 此时此刻,我已经开始在书中编写初始应用程序,在书中我们建立了一个新的全球连接 Lists = new Meteor.Collection("lists"); 然后,我们向该集合添加一些数据 lists.insert({Category:"DVDs", items: {Name:"Item Name",Owner:"me",LentTo:"Internet"}}) 我可以通过在控制台中检查来验证是否输入了数据 li

我一直在关注《流星入门》这本书,但我真的没有走多远,因为简单的错误一直阻碍着我

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

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>

{{>类别}
我的东西
{{{#每个列表}
{{Category}}
{{/每个}}

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

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

您可能需要:

Template.categories.lists = function() {
  return Lists.find({});
};
查看文档了解详细信息:


对于类别上的刻面,您可能需要设置一个被动会话值。

我很确定原因是您

    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

因为它是区分大小写的。然后在你的模板助手中做一个列表。查找({}),你就可以开始了。

为了让你在《发现流星》这本书上花的时间更容易:如果你有软件可以比较两个目录,那么从git中获得这本书,它位于一个与你正在键入的内容平行的目录中。然后,当您遇到问题时,转到终端中的那个目录,git签出这一章。现在,比较这两个文件夹,您将看到拼写错误

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

但是《流星》这本书是不同的。他们保持密码不变。我亲自打字,发现我的错误在更好的阅读中得到了解决(,而且我对自己正在做的事情思考得更少)。我已经通过它谈论了两个二十多岁的年轻人,他们也一直在做新的创造性标点或拼写选择。还有

meteor add xxx
meteor remove xxx
容易丢失的命令


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

通过这里的评论,再多读一点,原因是没有任何东西告诉meteor模板是定义的

通过以下代码解决了此问题:

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

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

谢谢Bjorn。我只是补充了一下,但还是什么都没有。两个控制台中都没有。然而,这可能就是我遇到这样一个问题的原因。我不知道反应会话的价值是什么,因为我在书中没有写得太远,但我在书中没有写得太远,因为这不起作用。感觉很困。也许你只是想从流星教程开始。我没有读过一本书来学习流星。我一直在想,我试过两个案例,结果都一样。您认为最佳实践是对变量使用与集合名称相同的大小写吗?我相信您必须使用相同的大小写。如果你看所有流星的例子,那就是他们所做的。第一个字母总是大写。是的,我相信我是从一个旧的pdf文件开始工作的,就像在书中他将列表变量定义为“var Lists”一样,但meteor给出的示例不使用var协议。你可以再次下载它或在web上查看,使用最初使用的相同凭据。我同意其他人的观点,即你最终需要用理性的方式来解决这个问题。但跟着这本书继续学习是可以的。我想你们两个指的是不同的书。OP指的是开始使用Meteor,这个答案指的是Discover Meteor.OOPS。是的,我对你的书一无所知。不过,我想我所说的在这一时期保持最新的观点是正确的。谢谢,@land!