我该如何拆分模板?

时间:2013-04-19 09:57:47

标签: javascript meteor

我有一个HTML文档:

<body>
    {{> today_list}}    
</body>

模板:

<template name="today_list">
   {{#if action_log_mode}}
   ...
   {{/if}}


   {{#if action_list_mode}}
   ...
   {{/if}}
</template>

是否可以将此模板拆分为另外两个。像这样:

<body>
  {{#if action_log_mode}}
    {{> one}}
  {{/if}}   
  {{#if action_list_mode}}
    {{> two}}
  {{/if}}   
</body>

1 个答案:

答案 0 :(得分:1)

您可以拥有任意数量的模板,它们可以嵌套。它们可能位于相同或不同的.html文件中。

我不知道你是否可以在体内(模板外)调整模板助手的范围。模板助手的范围限定为特定模板。例如,'one'将无法在模板'two'中访问Template.one.listItem = function () { ...。但是,您可以添加一个全局帮助程序(可能在<body>中工作),如此(取自Meteor wiki):

Handlebars.registerHelper("foo", function() {
  return "blah"; // (calculate value here)
});

绝对可行的是:

在app.html中

<body>
  {{ > page }}
</body>

<template name="page">
   {{#if isLogMode}}
     {{ > one }}
   {{else}}
     {{ > two }}
   {{/if}}
</template>

<template name="one">
  ...
</template>

<template name="two">
  ...
</template>

在app.js

Template.page.isLogMode = function () {
  // (something like)
  return Session.get('logMode') === "log";
};