Метеор: передача параметра маршрутизатора для получения данных коллекции без результатов

Я новичок в метеоре и столкнулся с проблемой при попытке использовать 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;
}

person Michiel    schedule 13.05.2015    source источник
comment
попробуйте изменить это 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.2015
comment
Что вам дает console.log(this.params._id)?   -  person SylvainB    schedule 13.05.2015
comment
Как насчет Events.findOne({_id: ObjectId(this.params._id)});   -  person mwarren    schedule 13.05.2015
comment
Достаточно глупо, я поместил : в то место, где его быть не должно. Теперь код полностью функционален :) Всем спасибо за помощь!   -  person Michiel    schedule 13.05.2015


Ответы (1)


По ошибке я поставил : там, где его быть не должно.
Заключительный вопрос.

person Michiel    schedule 13.05.2015