流星从路由器获取数据

Meteor getting data from router

我无法从 iron:router 获取数据。 我试图通过 param._id 获取数据,然后将其传递给我的 template.created 以设置用于编辑目的的会话变量。

这是我在路由器中的代码:

Router.route('/edit/:_id', function(){
    this.render('edit', {
        data: function(){

                return Collection.findOne({_id: this.params._id})
        }
    })  
})

然后我想在此处访问该数据:

Template.edit.created = function(){

   data = ???
   Session.set('edit', data)
   $(input).val(data.post)

}

如果我这样做 console.log( this ) 我得到 Blaze.TemplateInstance.

但是当我 console.log(this) 在 Template.edit.events 时,我从 iron:router.

得到了我想要的文档

我使用了 Template.currentData(); 并设法访问了 template.created 中的数据,但是有人可以解释为什么 template.created 和 template.events 中的 "this" 指的是2 个不同的东西?

对于 template.created 和 template.rendered,您可以使用 this.data 访问数据。