我刚刚开始玩流星,我慢慢地移动了一个 NodeJS / Express应用程序到流星。但是在我的博客部分,我似乎无法在帮助器中获得一个帖子_id。仅使用NodeJS,我就可以使用req.params._id。
使用Differential样板作为起始点,(仍然在dev中使用不安全和自动发布)我有这个:
//both/controllers/post.js
PostController = AppController.extend({
waitOn: function() {
return this.subscribe('posts');
},
data: function () {
return Posts.findOne({_id:this.params._id});
}
});
在路由器文件中
//both/router/router.js
Router.route('/posts/:_id', {
name: 'post'
});
主要博客列表页面上的链接到单个帖子的格式如下。
//client/templates/blog/blog.html
<h3><a href="{{pathFor 'post'}}" class="title">{{ title }}</a></h3>
然后帮助文件似乎是问题?
// /client/templates/post/post.js
Template.post.rendered = function() {
};
Template.post.helpers({
data: function () {
return Posts.findOne({_id:this.params._id});
}
});
Template.post.helpers({
createdAtFormatted: function () {
return moment(this.createdAt).fromNow();
}
});
我已经尝试了这个.params._id,request.params.id,req.params._id, 除了设置点击事件并在会话中设置_id(我不喜欢这个想法,如果它甚至可以高效/有效地工作)。我坚持想法。