【问题标题】:Using Blaze on meteor is not working the way tutorials say it will在流星上使用 Blaze 并不像教程所说的那样工作
【发布时间】:2016-05-08 16:49:43
【问题描述】:

我的侧边栏需要从节点集合中加载名称和路径。 我的publication.js

Meteor.publish('nodes', function(){
return Nodes.find();

}); 我的nodes_find.js 和publication.js 文件在服务器文件中

if(Nodes.find().count() === 0){
Nodes.insert({
    name: "Example Node",
    path: "ExampleNode"
});
Nodes.insert({
    name: "Node 2",
    path: "ExampleNode"
});
Nodes.insert({
    name: "Node 3",
    path: "ExampleNode"
});

} 用于显示节点和路径的 Html 块

<template name="sidebar">
<ul class="sidebar-nav" id="sidebar" role="navigation">     
 <div class="nodes">
  {{#each nodes}}
  <li>
    <a href="{{path}}">
      {{name}}
    </a>
  </li>
  {{/each}}
  </div>
</ul>

最后是 sidebar.js 文件

Template.sidebar.helpers({
nodes: function(){
    return Nodes.find();
}

});

虽然我得到的只是 4 个没有名称和路径的薄标签。 我已经阅读了《发现流星》这本书并进行了练习 已经看到他们如何使用它并查看了许多论坛并看到了这个 确切的代码工作。有什么我遗漏的吗?

【问题讨论】:

  • 您订阅了该出版物吗? (或者有自动发布功能?)
  • @bluebird 是的,我已经发布并订阅了。服务器端 Meteor.publish('nodes', function(){ return Nodes.find(); });客户端 Meteor.subscribe('nodes');

标签: meteor meteor-blaze meteor-helper blaze-html


【解决方案1】:

@Faysal Ahmed 感谢您建议控制台测试。我完全忽略了这个想法。当我第一次制作应用程序时,我没有想到数据库会保留旧数据库。 所以我研究了一下,发现使用 Meteor reset 有助于清除数据库。 现在我的网站上有我想要的东西,非常感谢你的想法。

【讨论】:

    【解决方案2】:

    我想您忘记订阅您的出版物了。或者,如果您的 autopublish 已安装,则您无需订阅。如果您的数据真的在客户端中传递,请检查您的客户端控制台。

    【讨论】:

    • 我已在客户端订阅并在服务器上发布,并已删除自动发布。但是我将如何检查我的客户端控制台以获取传递的数据。
    • 我进入并输入 Nodes.find().fetch() 并返回 4 个对象,而应该只有 3 个对象,并且标题:不是名称:是所有对象的节点 1。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多