学习流星,我跟随萨莎格列夫的书“发现流星”。 此处反映了当前的源代码 - > 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超级新手,任何指导都非常感激
答案 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
中计算出来