Как передавать данные между двумя разными маршрутами и шаблонами?Meteor Iron Router: Передача данных между маршрутами
У меня есть файл javascript на переднем конце (клиентская папка), который просто вызывает Router.go(), передавая идентификатор сообщения в качестве одного из моих параметров.
Ниже приведены три основных виновника (я считаю). Я удалил большую часть кода, чтобы было легче читать. Я без проблем могу перейти на страницу PostDetail. Я также могу получить PostId на странице PostDetail с маршрутизатора. Моя проблема заключается в том, что запись базы данных (POLL), которая извлекается, не отображается в шаблоне. Следовательно, {{Question}} всегда пуст, даже если возвращается запись базы данных.
Дайте мне знать, если я напишу дополнительную информацию.
FrontEnd.js
Template.PostTiles.events({
// When a choice is selected
'click .pin' : function(event, template) {
Router.go('Post', {_PostId: this.PostId});
}
});
пост-detail.html
<template name="PostDetail">
<h3>{{Question}}</p>
</template>
Shared.js
Router.map(function() {
this.route('Home', {
path: '/',
template: 'PostTiles',
data: {
// Here we can return DB data instead of attaching
// a helper method to the Template object
QuestionsList: function() {
return POLL.find().fetch();
}
}
});
this.route('Post', {
template: 'PostDetail',
path: '/Post/:_PostId',
data: function() {
return POLL.findOne(this.params._PostId);
},
renderTemplates: {
'disqus': {to: 'comments'}
}
});
});
----- ----- Обновление
Я думаю, что я сузил проблему просто быть в состоянии оказать только одну запись базы данных, вместо того, чтобы их список с помощью {{#each SomeList}}.
Я думаю, что сессия - хороший способ neral для передачи данных, но в этом случае это скорее проблема синтаксиса. –
Сессия не сохраняется между маршрутами. – Joseph
Сессии - глобально постоянные объекты! –