Assemble.io:布局中的YAML前置变量

时间:2014-06-30 17:37:20

标签: assemble

在子布局中,是否可以定义一个前端变量,其范围仅限于使用此布局的模板?

例如,给定子布局child.hbs:

---
layout: parent.hbs
layout_script: childScript.js
---

父布局parent.hbs:

{{#if layout_script}}
<script src="assets/js/{{layout_script}}">
{{/if}}

我希望我的父布局在从child.hbs继承的页面上包含脚本标记 。相反,layout_script变为全局,并且在使用parent.hbs的所有页面上输出脚本。

作为参考,父布局的实际代码是here。我们希望脚本仅在使用子布局benefits.hbs的页面上构建。

Related question

2 个答案:

答案 0 :(得分:1)

汇编0.4.x中存在一个错误,其中数据在页面中持续存在,因为它在构建期间扩展到全局上下文中。这是我们在下一版本中修复的内容,但在0.4.x中不可用。

作为一种解决方法,您应该能够将layout_script设置为false的任何其他子布局,以便它不会被使用:

---
layout_script: false
---

答案 1 :(得分:0)

我认为您需要将parent.hbs更改为以下内容:

{{#if data.layout_script}}
<script src="assets/js/{{layout_script}}">
{{/if}}

看看是否有效。