你怎么能使用常数来有条件地显示流星剖面?

时间:2013-11-25 10:08:20

标签: meteor

我对流星文档中的这个片段很感兴趣:

Helpers can also be used to pass in constant data.
// Works fine with {{#each sections}}
Template.report.sections = ["Situation", "Complication", "Resolution"];

这让我觉得您可以在任何时间点传递您希望显示的模板列表:

{{#each sections}}
<div>{{> this}}</div>
{{/each}}

但这会引发错误:

Template names shouldn't contain '.' or '/' (compiling client/cjblog.html)

任何人都可以解释如何使用常量数据来有条件地显示部分吗?

1 个答案:

答案 0 :(得分:0)

您可以像显示的那样传递静态数据并显示它:

{{#each sections}} {{this}} {{/each}}

但是,你不能简单地创建一个动态模板 - 行

{{> this}}

不起作用。有几种解决方法,可能最灵活的是创建帮助程序:

Handlebars.registerHelper('renderThing', function(thing) {
  if (Template[thing])
    return new Handlebars.SafeString(Template[thing]());
});

然后你可以这样使用它:

{{#each sections}}
    {{renderThing this}}
{{/each}}