我试图通过Handlebars生成嵌套的ul>li
列表标记。所以,我在把手中使用了部分。
但是,不知何故,以下代码无效。你能不能提一下,做错了什么。
var handlebars = require('handlebars');
var source = '<ul>{{> list}}</ul>';
handlebars.registerPartial('list',
'{{#children}}' +
' <li>' +
' {{name}}' +
' {{#children}}' +
' <ul>' +
' {{> list}}' +
' </ul>' +
' {{/children}}' +
' </li>' +
'{{/children}}');
var template = handlebars.compile(source);
var children = [
{
name: 'Abcd',
children: [
{
name: 'dfrt',
children: [
{
name: 'fgtd',
children: [
]
},
{
name: 'ghty',
children: [
]
}
]
}
]
}
];
var generatedString = template(children);
console.log(generatedString); // Only produces '<ul></ul>'
答案 0 :(得分:0)
与您的示例类似的mustache example不同,您可以使用Handlebars #each
帮助
来源:
var source = ' <ul>{{#each this}}{{> list this}} {{/each}}</ul>'
帮助者:
<li>
{{name}}
{{if children}}
<ul>
{{#each children}}
{{> list this}}
{{/each}}
</ul>
{{/if}}
</li>
结果: