Adi*_*Adi 9 handlebars.js assemble
我使用assemble.io作为一个简单的静态网站,但我遇到了{{title}}标记的问题.以下是该问题的概述.
这是我的layout.hbs:
<!DOCTYPE html>
<html>
<head>
<title>{{title}}</title>
</head>
<body>
<!-- the body tag is used to "pull in" content from pages -->
{{> body }}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我有2个json文件用于数据:
foo1.json
{
"title": "Hello world I am title 1"
}
Run Code Online (Sandbox Code Playgroud)
foo2.json
{
"title": "I am a different title"
}
Run Code Online (Sandbox Code Playgroud)
我有2页:
foo1.hbs
{{#foo1 }}
{{> module1 }}
{{> module2 }}
{{> module3 }}
{{/foo1 }}
Run Code Online (Sandbox Code Playgroud)
foo2.hbs
{{#foo2 }}
{{> module1 }}
{{> module2 }}
{{> module3 }}
{{/foo2 }}
Run Code Online (Sandbox Code Playgroud)
我的gruntfile.js片段:
options: {
layout: "src/responsive/layouts/layout.hbs",
partials: 'src/responsive/modules/**/*.hbs',
data: 'src/responsive/data/**/*.json',
flatten: false
},
pages: {
expand: true,
cwd: 'src/responsive/pages',
src: '**/*.hbs',
dest: 'src/'
}
Run Code Online (Sandbox Code Playgroud)
当我运行'grunt assemble'时,我没有页面标题.我认为这与上下文有关,好像我将{{title}}layout.hbs 更改为{{foo1.title}}或者{{foo2.title}}它可以工作但是两个页面都获得与共享此模板相同的标题.
如何使{{title}}layout.hbs中的上下文适用于所有传入的json文件?
一个.
@Adi 我在这里设置了一个存储库,其中包含您所描述的结构。
我刚刚更改了layout.hbs 中的代码,它按预期工作。
<!DOCTYPE html>
<html>
<head>
<title>{{page.title}}</title>
</head>
<body>
<!-- the body tag is used to "pull in" content from pages -->
{{> body }}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果您有我们可以查看的存储库,它可能有助于追踪问题。
希望这可以帮助。