我有与点击按钮相关的功能:
'click .single-speaker-info a': function(ev, speaker){
ev.preventDefault();
Session.set('selectedDocId', this._id);
}
但我希望在遇到这条路线时发生这种情况
Router.route('speaker', {
path:'/speakers/:_id',
template: 'speaker',
data: function(){
return Speakers.findOne(this.params._id);
},
//my attempted solution
selectedDocId: function(){
Session.set('selectedDocId', this._id);
}
});
但我找不到任何关于如何在路线上执行方法的文档。
这是使用get
属性Im设置
Template.speaker.helpers({
editingDoc: function(){
return Speakers.findOne({_id: Session.get('selectedDocId')});
}
});
答案 0 :(得分:1)
但我找不到任何关于如何在路线上执行方法的文档。
铁路由器提供了许多hooks:
答案 1 :(得分:1)
您可以使用Template.x.rendered,一旦呈现页面,该块中的任何代码都将被执行。当然这不会在你的路由器中。
在你的情况下:
Template.speaker.rendered = function() {
//Get data from router
var data = Router.current().data();
Session.set('selectedDocId', data._id);
}