私は流星にかなり慣れていないので、Iron Router を使用して URL パラメータを Collection に渡し、表示用のデータを取得しようとしているときに問題が発生しました。
具体的には、イベントを含むコレクションがあり、1 つのコレクションをより詳細に表示するページが必要です。
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')
];
}
});
私はManuel Schoebel linkによるこのチュートリアルを見てきました
コレクションの検索が行われるまでは問題ありません。コレクションから結果データをログに記録すると、undefined
data: function () {
var event = Events.findOne(this.params._id);
console.log(event);
return event;
}