把手部分不起作用

时间:2015-04-07 15:21:31

标签: node.js handlebars.js partials

我试图通过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>'

1 个答案:

答案 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>

结果:

  • ABCD
    • dfrt
      • fgtd
      • ghty