我该如何在不同的路由和模板之间传递数据?
我有一个位于前端(client文件夹)的JavaScript文件,它简单地调用Router.go()函数并传递文章ID作为其中的一个参数。
以下是我认为的三个主要问题。我已将大部分代码删除以便更易阅读。我可以顺利切换到“PostDetail”页面。我还可以从Router上获取“PostId”。但我的问题是,检索到的数据库条目(POLL)并没有在模板中呈现出来。因此,尽管数据库条目被返回,{{Question}}仍然为空。
如果需要更多信息,请告诉我。
FrontEnd.js
我有一个位于前端(client文件夹)的JavaScript文件,它简单地调用Router.go()函数并传递文章ID作为其中的一个参数。
以下是我认为的三个主要问题。我已将大部分代码删除以便更易阅读。我可以顺利切换到“PostDetail”页面。我还可以从Router上获取“PostId”。但我的问题是,检索到的数据库条目(POLL)并没有在模板中呈现出来。因此,尽管数据库条目被返回,{{Question}}仍然为空。
如果需要更多信息,请告诉我。
FrontEnd.js
Template.PostTiles.events({
// When a choice is selected
'click .pin' : function(event, template) {
Router.go('Post', {_PostId: this.PostId});
}
});
文章详情页.html
<template name="PostDetail">
<h3>{{Question}}</p>
</template>
Shared.js
Router.map( function() {
this.route('Home', {
path: '/',
template: 'PostTiles',
data: {
// Here we can return DB data instead of attaching
// a helper method to the Template object
QuestionsList: function() {
return POLL.find().fetch();
}
}
});
this.route('Post', {
template: 'PostDetail',
path: '/Post/:_PostId',
data: function() {
return POLL.findOne(this.params._PostId);
},
renderTemplates: {
'disqus': {to: 'comments'}
}
});
});
----- 更新 -----
我认为问题的症结在于只能渲染一个数据库条目,而不能使用{{#each SomeList}}语法来渲染列表。