我有一个任务列表,我想在单击其中一个任务时加载相应注释的列表。 铁路由器代码:
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);
});
当我控制台登录时,它给了我以下对象:
请注意,没有_id且数据也为空。
答案 0 :(得分:7)
您可以在此回调中使用Template.currentData()
来访问模板实例的被动数据上下文。模板销毁后,计算将自动停止。
Template.commentList.onCreated(function(){
var self = this;
var dataContext = Template.currentData()
self.subscribe("comments",dataContext._id);
});