我对流星文档中的这个片段很感兴趣:
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)
任何人都可以解释如何使用常量数据来有条件地显示部分吗?
答案 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}}