请参阅以下代码:
Router.route('/posts/:_id', function () {
this.render('Post', {
to: 'content',
data: function () {
return Posts.findOne({id: this.params._id});
}
});
});
如果Post
对象在MongoDB中有title
和body
个文件,我可以从Post.html
模板访问它们,例如
<h4>Post title: {{title}}</h4>
<h3>Post body: {{body}}</h4>
我想在模板助手函数中从Post
访问Post.js
对象。有可能吗?
更新:
根据这个问题:Meteor data-context with iron-router,我可以像这样访问data
变量:
Template.Post.rendered = function() {
console.log(this.data)
}
有没有办法在Template.Post.events
内执行此操作?
答案 0 :(得分:2)
好像您正在寻找Template.currentData()方法。
Template.example.events({
'click #test':function(e,t){
console.log(Template.currentData())
}
})
更新似乎使用currentData具有不同的行为,具体取决于案例check this
所以看起来如果你想使用它,你应该在DOM元素中。
Template.post.events({
'click h4':function(){
console.log(Template.currentData()) // and should return the title.
}
})
基于stubalio说。
在事件处理程序中,返回该元素的数据上下文 解雇了这个事件。