在我的流星项目中,我添加了铁:布局、铁:动态模板以及铁:路由器。
我的问题是,如果 Session 中没有可用数据,如何防止动态模板呈现?原因是,动态模板当前正在渲染其中包含除数据上下文之外的所有 html 内容。这是用户最初到达页面时的问题。
我在“postlist”模板上有一个姓名列表。这些是创建帖子的人的“用户名”。当用户单击名称时,模板“viewpost”会呈现并传递相关数据……这很好。但如前所述,当用户第一次到达页面时,没有数据上下文。所以看到除了动态内容之外的所有内容。
以下是我当前的代码,在我之前的帖子中获得了帮助。Meteor:在模板内渲染模板
HTML:
<template name="postlist">
<div class="container">
<div class="col-sm-3">
{{#each post}}
<li><a href="#">{{fullname}}</a></li>
{{/each}}
</div>
</div>
{{> Template.dynamic template='viewpost' data=currentPost}}
</template>
单击事件以捕获 post _id / helper 文件:
Template.postlist.helpers({
currentPost: function(){
return Posts.findOne(Session.get('currentPost'));
}
});
Template.postlist.events({
'click li': function(e){
e.preventDefault();
Session.set("currentPost", this._id);
}
});