Meteor中布局模板的最佳实践?

时间:2013-10-18 20:10:32

标签: templates meteor

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

经验丰富的流星开发人员做了什么?

1 个答案:

答案 0 :(得分:3)

有几种选择。

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

2)等到0.6.0版本的铁路由器稳定并释放。

3)等到0.6.0被释放,同时使用旧的Router并复制其布局功能。方法如下:

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>