我使用Handlebars作为一个简单的Node.js项目,我想在部分中插入多个变量。
我有一个layout
,其中包含我的html页面的基本框架(html
和head
标签)。我呈现的页面通常都是相同的,包含以下代码:
{{> default/header
help_title="This is the title of my help modal."
help_body="<p>This is the body.</p>"
}}
<main class="vertical-center">
<div class="container-fluid">
<div class="row justify-content-center">
<div class="col-12 col-lg-8 justify-content-center align-items-center">
<!-- THE CONTENT THERE -->
</div>
</div>
</div>
</main>
{{> default/footer}}
根据页面本身的不同,我可能不希望显示页眉和/或页脚(因此我删除了该行)。
我的需要:我想将main
部分包装成部分(因为除了<!-- THE CONTENT THERE -->
之外的所有部分都是不变的)或任何可以完成工作并且不仅提供少量单词(如标题中)但可能包含很多html码。我在文档中找不到办法。像这样的东西,基本上有点像布局:
{{> default/main
<!-- THE RAW HTML CONTENT THERE -->
}}
把手完全支持你以partial blocks形式描述的内容。部分块的默认行为是在无法找到部分时呈现默认内容。但是,有一个特殊的内置助手,@partial-block
,它会将内容注入你的部分内容。
从文档:
此块语法也可用于将模板传递给partial,这可以由特别命名的部分
@partial-block
执行。
在您的部分内部,您将添加{{> @partial-block }}
,您希望在其中注入内容。在您的情况下,您的“主要”部分将如下所示:
<main class="vertical-center">
<div class="container-fluid">
<div class="row justify-content-center">
<div class="col-12 col-lg-8 justify-content-center align-items-center">
{{> @partial-block }}
</div>
</div>
</div>
</main>
然后,调用“main”部分的页面将使用块语法和要注入块标记内部的内容的内容:
{{#> main}}
<p>THE RAW HTML CONTENT HERE</p>
{{/main}}
我创建了一个fiddle供您参考。