Meteor,TypeError:无法读取属性' _id'未定义的。从post参数获取_id

时间:2015-09-01 10:59:23

标签: javascript meteor meteor-helper

我刚刚开始玩流星,我慢慢地移动了一个 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(我不喜欢这个想法,如果它甚至可以高效/有效地工作)。我坚持想法。

0 个答案:

没有答案