流星路径助手没有返回任何东西

时间:2014-05-15 02:08:20

标签: coffeescript meteor

学习流星,我跟随萨莎格列夫的书“发现流星”。 此处反映了当前的源代码 - > https://github.com/stopachka/meteor-hackernews

现在,我正在尝试添加一个“讨论”'链接到post_item,它应该呈现单个post_item。

<template name="postItem">
  <div class="post">
    <div class="post-content">
      <h3><a href="{{url}}">{{title}}</a><span>{{domain}}</span></h3>
    </div>
    <a href="{{postPagePath title}}" class="discuss btn">Discuss</a>
  </div>
</template>

路由器看起来像这样 - &gt;

Meteor.Router.add
  '/': 'postsList'
  '/posts/:_id':
    to: 'postPage'
    and: (id) ->
      Session.set('currentPostId', id)

目前,如果我输入浏览器

localhost:3000/posts/foobarid

它呈现相应的帖子

但是当我添加{{postPagePath title}}时,讨论按钮甚至没有显示href属性。我假设它是因为它没有呈现任何东西。

这里的Meteor超级新手,任何指导都非常感激

2 个答案:

答案 0 :(得分:1)

这里要注意几点:

首先,您使用的教程Meteor路由器的路由器软件包已被弃用,以支持Meteor,Iron Router的现行规范路由软件包。您可以在Meteor Router github页面here上看到这一点,您可以找到Iron Router规范here。我怀疑你可能正在使用旧版本的Discover Meteor书,因为它现在详细介绍了Iron Router。如果可能的话,我会尝试使用一本涵盖铁路由器的书,因为它将成为可预见的未来的标准。

其次,你认为href =“”属性没有显示是正确的,因为它没有呈现任何东西。具体来说,在Meteor 0.8+中,如果属性的值返回null,undefined或false,则删除属性本身。 Read more here

最后,虽然我不能快速了解Meteor路由器的详细信息,但它会快速检查,就像你想要传递PostPagePath的id而不是帖子的标题,例如{{PostPagePath id}}或类似的。

答案 1 :(得分:1)

我遇到了与路由器类似的问题并发现它已被弃用

对我来说,决议是安装陨石并添加Iron-Router

mrt add iron-router

然后您可以按如下方式进行路线:

Router.map(function() {
     this.route('postslist', {path: '/'})
    //read the docs for your next routing needs


});

我假设您已经安装了陨石,如果您没有安装陨石,并且正在使用uBuntu或类似的味道,您可以使用以下方法轻松设置:

export PATH=~/.meteor/tools/latest/bin:$PATH    //ensure you are in your project root directory

npm install -g meteorite    //must have npm installed

从此stackoverflow link

中计算出来