在流星中处理多个“页面”的“正式”方式是什么?我说“页面”我看到人们用不同的方式做到这一点。我见过人们创建实际的完整页面(index.html,about.html,contact.html),然后点击链接时,你会写一个路由来渲染这些页面。但我也看到人们基本上将每个页面的代码放在<template>
标签内,然后根据他们点击的内容,登录凭据等做了很好的显示/隐藏类型的东西。
答案 0 :(得分:17)
有几种方法可以处理meteor中的多个页面
使用铁路由器,您可以使用{{> yield}}
创建布局模板并在其中注入所有其他模板。查看iron-router guide以了解有关布局模板的更多信息。
如果您不想添加铁路由器,可以使用{{> 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}}
。