流星:传递路由器参数以获取没有结果的集合数据
Meteor : passing router parameter to get Collection data without results
我对 meteor 还很陌生,在尝试使用 Iron Router 将 url 参数传递给 Collection 并检索一些数据进行显示时遇到了问题。
具体来说,我有一个包含事件的集合,我想要一个页面来更详细地显示单个事件。
PS: 我已经成功地使用了 Iron Router 和 Meteor 的 publish/subscribe 逻辑来完成其他任务,例如显示所有事件,创建它们并保存他们添加到个人列表中。
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;
}
我错误地把 :
放在了不该放的地方。
结束问题。
我对 meteor 还很陌生,在尝试使用 Iron Router 将 url 参数传递给 Collection 并检索一些数据进行显示时遇到了问题。
具体来说,我有一个包含事件的集合,我想要一个页面来更详细地显示单个事件。
PS: 我已经成功地使用了 Iron Router 和 Meteor 的 publish/subscribe 逻辑来完成其他任务,例如显示所有事件,创建它们并保存他们添加到个人列表中。
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;
}
我错误地把 :
放在了不该放的地方。
结束问题。