Я новичок в метеоре и столкнулся с проблемой при попытке использовать Iron Router для передачи параметра URL-адреса в коллекцию и получения некоторых данных для отображения.
В частности, у меня есть коллекция с событиями, и я хотел бы иметь страницу, отображающую одно из них более подробно.
PS: я успешно использовал логику публикации/подписки Iron Router и Meteor для других задач, таких как отображение всех событий, их создание и сохранение в личном списке.
event.html
<template name="event">
<div class="page-header">
<h1>{{title}}</h1>
</div>
<div class="container">
<p>{{content}}</p>
</div>
</template>
router.js
this.route('event',{
path: '/event/:_id',
waitOn: function () {
return Meteor.subscribe('Events');
},
data: function () {
return Events.findOne(this.params._id);
}
});
Публикация происходит на сервере в publish.js, а подписка — в роутере
publish.js
Meteor.publish('Events', function () {
return Events.find();
});
router.js
Router.configure({
(..)
waitOn: function() {
return [
Meteor.subscribe('Events'),
Meteor.subscribe('myEvents')
];
}
});
Я просматривал этот учебник Мануэля Шоебеля ссылка.
Все в порядке до момента, когда происходит поиск коллекции. Когда я регистрирую данные результатов из коллекции, это undefined
data: function () {
var event = Events.findOne(this.params._id);
console.log(event);
return event;
}
var event = Events.findOne(this.params._id);
наvar event = Events.findOne({_id: eventId}); //where var eventId = this.params._id
и вернуть{event: event}
- person Marius Darila   schedule 13.05.2015console.log(this.params._id)
? - person SylvainB   schedule 13.05.2015:
в то место, где его быть не должно. Теперь код полностью функционален :) Всем спасибо за помощь! - person Michiel   schedule 13.05.2015