如何在通过Assemble 0.6.0运行它们之前合并两个Handlebars partials?

时间:2015-05-13 15:24:51

标签: handlebars.js assemble

我有两个.hbs文件。一个包含一个基本按钮,另一个包含一个利用{{basic-button}}的按钮栏。我想将第一个.hbs拉到第二个,然后将Assemble渲染为文件。

我认为这就像将基本按钮注册为部分并将其传递到按钮栏页面一样简单。但看起来我需要运行我的.hbs文件,渲染它们然后让汇编做它的事情。

我可以在Assemble

中使用等效的handlebars.registerpartials

1 个答案:

答案 0 :(得分:1)

您可以使用.partials方法注册部分内容...

assemble.partials(['partials/*.hbs']);

然后你可以使用那些具有普通手柄语法的部分(使用文件名作为部分名称)

{{> basic-button}}

如果这不是您要查找的内容,您是否可以发布我可以查看的存储库?

修改

基于评论:您可以在partials(和其他模板类型)中使用布局

元素部分

---
layout: button-bar
---
{{> basic-button }}

按钮杆

{% body %}

但我不认为这是你想要完成的事情,因为你可能想要多个"基本按钮"按钮栏内的部分内容。

另一种选择是使用页面内的前端内容来指定按钮列表,并将其作为部分上下文传递给部分:

page.hbs

---
buttons:
 - "basic-button"
 - "advanced-button"
 - "menu-button"
---
{{> button-bar buttons}}

然后在button-bar内,您可以使用我们内置的partial帮助器动态地包含列表中的部分内容:

<ul class="btn-bar">
{{#each this}}
  <li class="btn">{{partial this}}</li>
{{/each}}
</ul>

希望这会有所帮助。