2015-04-03 2 views
1

См ниже код пожалуйста:Доступ железа маршрутизатор данных из вспомогательных функций

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

Если Post объект имеет title и body fileds в MongoDB, я могу получить доступ к ним из Post.html шаблона, как

<h4>Post title: {{title}}</h4> 
<h3>Post body: {{body}}</h4> 

Я хотел бы получить Post объект от Post.js в функции помощника шаблона. Является ли это возможным?

Update: По этому вопросу: Meteor data-context with iron-router, я могу получить доступ к data переменным так:

Template.Post.rendered = function() { 
    console.log(this.data) 
    } 

Есть ли способ сделать это внутри Template.Post.events?

ответ

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 говорит.

Внутри обработчика событий возвращается контекст данных элемента, который уволил событие.

Смежные вопросы