所以我有一个简单的视图,它显示了一个项目和该项目中的故事。在铁路由器中,我将其称为 projectShow 路线:
@route 'projectShow', {
path: '/projects/:_id',
template: 'projectsShow'
}
我的模板是
<template name="projectsShow">
<div class="row">
I'm a project
{{name}}
<a href="#" id="add-story">New Story</a>
{{#each stories}}
Title: {{title}}
{{/each}}
</div>
</template>
所以让我绊倒的部分是正确地从服务器选择数据并将其提供给客户端。我尝试过的发布是这样的:
if Meteor.isServer
Meteor.publish "projectAndStories", (id) ->
[Projects.findOne({_id: id}), Stories.find({projectId: id})]
我不清楚的是在哪里以及如何在路由器/客户端正确订阅它,以及设置一个会话变量,以便我可以在添加新故事时引用当前项目
我试过了:
# in route
waitOn: ->
Meteor.subscribe('projectAndStories', @params._id)
Session.set('projectId', @params._id)
# template js file
Template.projectShow.project = Projects.findOne({_id: Session.get('projectId')})
Template.projectShow.stories = Stories.find({projectId: Session.get('projectId')})
但是,这并不适合将其纳入模板。我究竟做错了什么?