Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates Iron路由器动态模板渲染_Templates_Meteor_Iron Router_Spacebars - Fatal编程技术网

Templates Iron路由器动态模板渲染

Templates Iron路由器动态模板渲染,templates,meteor,iron-router,spacebars,Templates,Meteor,Iron Router,Spacebars,在我的meteor项目中,我添加了iron:layout、iron:dynamic模板以及iron:router 我的问题是,如果会话中没有可用数据,如何防止动态模板渲染?原因是,动态模板当前呈现时包含除数据上下文之外的所有html内容。当用户最初到达页面时,这就是问题所在 我在“postlist”模板上有一个姓名列表。这些是创建帖子的人的“用户名”。当用户单击名称时,模板“viewpost”将呈现并传递相关数据…这很好。但如前所述,当用户第一次到达页面时,没有数据上下文。因此,用户可以看到除动

在我的meteor项目中,我添加了iron:layout、iron:dynamic模板以及iron:router

我的问题是,如果会话中没有可用数据,如何防止动态模板渲染?原因是,动态模板当前呈现时包含除数据上下文之外的所有html内容。当用户最初到达页面时,这就是问题所在

我在“postlist”模板上有一个姓名列表。这些是创建帖子的人的“用户名”。当用户单击名称时,模板“viewpost”将呈现并传递相关数据…这很好。但如前所述,当用户第一次到达页面时,没有数据上下文。因此,用户可以看到除动态内容之外的所有内容

以下是我目前的代码,以及我从上一篇文章中得到的帮助

HTML:


这是一种替代的黑客方法,但“理解”并不是好的实践。这就是我想要实现的目标,这样你就有了一个想法。但我想就这个问题提出一些非黑客的建议。多谢各位

html:


以下内容是否不适用于您的目的?我删除了如答案1所示的助手,并尝试了此操作。但是模板仍然会被渲染。我还将模板上的插入更改为{{>viewpost}},但它仍然会被渲染。请参考答案2查看我插入的代码。
<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>
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);
}
});
<template name="viewpost">
    {{#if hasData}}
      <div class="container">
          Post creator is : {{username}} - Info: {{body_text}}
      </div>
    {{/if}}
</template>
Template.viewpost.helpers({
 "hasData":function(){
   return Session.get("currentPost");
}
});