从辅助函数访问铁路由器数据

时间:2015-04-03 20:54:13

标签: meteor

请参阅以下代码:

Router.route('/posts/:_id', function () {
   this.render('Post', {
     to: 'content',
     data: function () {
       return Posts.findOne({id: this.params._id});
     }
   });
 });

如果Post对象在MongoDB中有titlebody个文件,我可以从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内执行此操作?

1 个答案:

答案 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说。

  

在事件处理程序中,返回该元素的数据上下文   解雇了这个事件。