在汇编中我想定义一个数据层次结构,然后在一个模板中处理数据的子集,如何实现?
实施例
stages.yaml
stages:
stage1:
goodies:
- some
- data
stage2:
goodies:
- more
- data
然后像这样定义数据子集:
index.hbs
{{#withStage stage1}}
{{#each goodies}}
<p>{{this}}</p>
{{/each}}
{{/withStage}}
我尝试注册以下帮助:
helpers.js
Handlebars.registerHelper('withStage', function(context, options){
return options.fn(this.stages[context]);
});
但是虽然没有错误,但没有显示<p>
。
为了完整性,这是我的汇编选项:
Gruntfile.js
assemble: {
options: {
layout: "src/layouts/default.hbs",
flatten: true,
data: 'src/data/*.yaml',
helpers: ['./helpers.js'],
},
答案 0 :(得分:2)
我遇到了partials
的概念,这似乎是解决我的“设计问题”的方法:
将options.partials
添加到了
的 Gruntfile.js 强>:
assemble: {
options: {
...
data: 'src/data/*.yaml',
partials: ['src/partials/*.hbs' ],
...
},
并将 goodies.hbs 添加到src / partials中并将其添加到
的 index.hbs 强>:
{{#each stages.stage1}}
{{> goodies}}
{{/each}}
我仍然把这个问题保持开放,因为我想知道我对助手做错了什么。