处理多个"页面的正确方法"在流星

时间:2014-11-15 08:22:34

标签: meteor

在流星中处理多个“页面”的“正式”方式是什么?我说“页面”我看到人们用不同的方式做到这一点。我见过人们创建实际的完整页面(index.html,about.html,contact.html),然后点击链接时,你会写一个路由来渲染这些页面。但我也看到人们基本上将每个页面的代码放在<template>标签内,然后根据他们点击的内容,登录凭据等做了很好的显示/隐藏类型的东西。

1 个答案:

答案 0 :(得分:17)

有几种方法可以处理meteor中的多个页面

1.iron-router

使用铁路由器,您可以使用{{> yield}}创建布局模板并在其中注入所有其他模板。查看iron-router guide以了解有关布局模板的更多信息。

2.{{> Template.dynamic}}

如果您不想添加铁路由器,可以使用{{> Template.dynamic}}来实现相同目标。

<body>
  <ul>
    <li><a href="#" class="index">Home</li>
    <li><a href="#" class="about">About</li>
    <li><a href="#" class="contact">Contact</li>
  </ul>
  {{> Template.dynamic template=template_name }}
</body>

template_name可以使用模板助手

进行反应性更改
Meteor.startup(function () {
  Session.setDefault("templateName", "index")
});

Template.body.helpers({
  template_name: function(){
    return Session.get("templateName")
  }
});

Template.body.events({
  "click .home": function() {
    Session.set("templateName", "index");
  },
  "click .about": function() {
     Session.set("templateName", "about");
  }
  // ..
});

如果Session返回“about”那么, {{> Template.dynamic template="about"}},相当于{{> about}}