Meteor在onCreated中访问数据上下文

7
我有一个任务列表,当我点击其中一个任务时,我希望能够加载相应的评论列表。 Iron路由代码:
Router.route('/taskComments/:_id', function () {
        var item = Tasks.findOne(this.params._id);
        this.render('commentList', {data: item});
    },
    {
        name: 'taskComments',
        fastRender: true
    }
);

模板辅助程序:

Template.commentList.helpers({
    comments: function(){
        return Comments.find({taskID: this._id});
    });

我能在上面的代码片段中访问任务ID(this._id),但在onCreated中似乎不起作用。
Template.commentList.onCreated(function(){
    this.subscribe("comments",this._id);
});

当我在控制台记录这个时,它会给我以下对象:

enter image description here

请注意,这里没有_id,数据也为空。
1个回答

7

您可以在此回调函数内使用Template.currentData()来访问模板实例的响应式数据上下文。当模板被销毁时,计算会自动停止。

Template.commentList.onCreated(function(){
  var self = this;
  var dataContext = Template.currentData()
  self.subscribe("comments",dataContext._id);
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接