在我的流星项目中,我添加了铁:布局,铁:动态模板以及铁:路由器。
我的问题是,如果会话中没有可用的数据,如何阻止动态模板呈现?原因是,动态模板当前正在呈现其中除了数据上下文之外的所有html内容。当用户最初到达页面时,这就是问题。
我有一个名单列表' postlist'模板。这些是用户名'创建帖子的人当用户点击该名称时,该模板的“查看信息”就会显示出来。是通过相关数据传递...这很好。但如前所述,当用户第一次到达页面时,没有数据上下文。因此,除动态内容外,请查看所有内容。
以下是我当前的代码,在我之前的帖子中收到了帮助。 Meteor: Render template inside a template
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);
}
});
答案 0 :(得分:0)
这是一种替代黑客方法,但理解并不是一种好的做法。这是我实际想要实现的目标,因此您可以获得一个想法。但我想对此问题提出非黑客建议。谢谢。
HTML:
<template name="viewpost">
{{#if hasData}}
<div class="container">
Post creator is : {{username}} - Info: {{body_text}}
</div>
{{/if}}
</template>
JS:
Template.viewpost.helpers({
"hasData":function(){
return Session.get("currentPost");
}
});