onCreated中的流星访问数据上下文

时间:2016-02-01 16:27:45

标签: meteor

我有一个任务列表,我想在单击其中一个任务时加载相应注释的列表。 铁路由器代码:

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 个答案:

答案 0 :(得分:7)

您可以在此回调中使用Template.currentData()来访问模板实例的被动数据上下文。模板销毁后,计算将自动停止。

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