流星得到this.params._id undefined

时间:2014-03-15 14:42:36

标签: meteor iron-router

更新:我修复了问题,这是由于我的Meteor Publish设置我必须将其更改为返回Links.find();然后在我的链接列表中过滤正确的数据返回Links.find({topicId:this._id},{sort:{submitted:-1}});

所以我得到了一些非常奇怪的问题而且我真的被卡住了。

我有以下路线设置

this.route('linkEdit', {
        path: '/link/:_id/edit',
        data: function() {
           console.log(this.params);
           console.log(this.params._id);
           console.log(Links.findOne(this.params._id));
           return Links.findOne(this.params._id)
         }
    });

所以this.params很好我得到了 - [_id: "LiAiifzPHmMR23tg3", hash: undefined] 对于this.params._id - 我得到了正确的ID,LiAiifzPHmMR23tg3 但是对于Links.findOne(this.params._id) - 我得到了未定义的

然而,当我检查mongodb时,我有一个带有该ID的链接。

此外,如果我添加一个警报,当弹出警报时,模板会渲染数据,但随后会重新渲染,我会收到空​​白数据,因为它无法找到正确的链接ID。

1 个答案:

答案 0 :(得分:-1)

那是因为您的收藏查询有点偏,您需要将其更改为以下内容:

Links.findOne({_id: this.params._id});