使用Assemble和Handlebars,是否可以将页面分成命名部分,并将每个部分附加到父布局的某个区域?很像Asp.net MVC如何@section IM_A_SECTION {}然后@RenderSection(" IM_A_SECTION")。
Page.hbs看起来像
---
layout: layout.hbs
---
{{#content "head"}}
Header stuff goes here
{{/content}}
{{#content "body"}}
Body stuff goes here
{{/content}}
而layout.hbs将是
<html>
<head>
{{>head}}
</head>
<body>
{{>body}}
</body>
</html>
我可以使用Nodejs中的Handlebars工作,但不能在Assemble中工作。
修改:
根据doowb的回答,以下内容解决了上述问题。
Page.hbs:
{{#extend "layout"}}
{{#content "head"}}
Header stuff goes here
{{/content}}
{{#content "body"}}
Body stuff goes here
{{/content}}
{{/extend}}
并且layout.hbs:
<html>
<head>
{{#block "head"}}{{/block}}
</head>
</head>
<body>
{{#block "body"}}{{/block}}
</body>
</html>
在gruntfile.js中,在汇编任务中,将布局文件夹添加到partials文件夹列表中。
assemble: {
options: {
partials: ['src/partials/**/*.hbs', 'src/layouts/**/*.hbs']
}
}
希望别人觉得这很有用。
答案 0 :(得分:1)
看看这个问题:Assemble: Multiple points of content insertion in layout?
它包含有关如何在汇编v0.4.x中使用帮助程序布局的信息。这些仍将在汇编版本v0.6中提供,但我们希望能够支持更多内置布局选项。