我有一个名单列表' postlist'模板。这些是用户名'创建帖子的人我创建了一个href链接,这样当用户点击该名称时,它们就会被路由/定向到新模板&view;并能够查看完整的帖子文档。
但是,我希望' viewpost'要放置的模板{{>屈服}}在' postlist'而不是模板。如何配置layourTemplate,因为我已经有一个工作用于应用程序的另一部分。
当然,这篇文章显然应该根据用户点击的名称进行更改。
Think Meteor todos示例。取决于您是否点击“加入”#39;或者'登录',相关模板被渲染。
所以我到目前为止的内容如下。
postlist.html(显示帖子文档中'全名'字段的列表)。
<template name="postlist">
<div class="container">
<div class="col-sm-3">
{{#each post}}
<li><a href="{{pathFor 'viewpost'}}" >{{fullname}}</a></li>
{{/each}}
</div>
</div>
{{> yield}}
</template>
router.js
Router.map(function(){
this.route('postlist',{
path: '/postlist',
template: 'postlist',
waitOn: function(){
return Meteor.subscribe('posts');
},
data: function(){
return {post: Posts.find({})};
}
});
this.route('viewpost',{
path: '/viewpost/:_id',
template: 'viewpost',
waitOn: function(){
return Meteor.subscribe('posts');
},
data: function() { return Posts.findOne(this.params._id); }
});
});
答案 0 :(得分:1)
因为&#39; viewpost&#39;之间的内容重叠似乎不大。模板和&#39;帖子列表&#39;模板,我认为仅使用{{> viewpost currentPost}}
代替yield会更清晰,并以编程方式设置currentPost。例如,在postlist模板中,您可以使用currentPost变量返回当前帖子的数据,如下所示:
Template.postlist.helpers({
currentPost: function () {
return Posts.findOne(Session.get('currentPost'));
}
});
,只需点击帖子列表模板中的链接即可设置会话。