4

我使用的大多数模板系统都有一个主“布局”模板的概念,然后是针对页面细节的专门内容模板。例如,在 expressjs 中,确实有一个与内容分离的布局模板(iirc 与 ejs 或 jam 模板的工作方式相同)。

经验丰富的 Meteor 开发人员会做什么?

4

1 回答 1

3

有几种选择。

1)在开发版中使用Iron Router 。它仍在进行中,但据我所知,布局已经实现并且很棒。

2) 等到 Iron Router 0.6.0 版本稳定发布。

3) 等到 0.6.0 发布,同时使用旧路由器并复制其布局功能。就是这样:

index.html中,使用{{layout}}代替{{renderPage}}

<head>...</head>
<body>
  {{layout}}
</body>

现在定义全局布局助手:

Handlebars.registerHelper('layout', function(){
  if (Template[Session.get('layout')])
    return new Handlebars.SafeString(Template[Session.get('layout')]());
});

并在每条路由中设置一个会话变量:

Meteor.Router.add({
  '/news': function() {
    Session.set('layout', 'classicLayout');
    return 'news';
  },
});

最后,{{renderPage}}在您的布局模板中使用:

<template name="classicLayout">
  <div>
    {{renderPage}}
  </div>
</template>
于 2013-10-19T00:18:59.957 回答