在Handlebars中迭代对象

时间:2014-06-05 19:32:50

标签: javascript handlebars.js

使用“each”帮助器迭代对象时遇到问题。我知道这应该是非常简单的但是在做了一些研究后我仍然不知道我做错了什么。

我在js文件中包含所有内容:

    var model = {
        name: 'John',
        surname: 'Smith'
    };

    var source = '{{#each model}} \
        <p>Key: {{@key}}, Value: {{this}} &nbsp;</p> \
        {{/each}} '

    var template = Handlebars.compile(source);

    var html = template(model);

当我检查html变量的值时,它是一个空字符串。如何让Handlebars真正构建我想要的html?

编辑: 我自己想出了答案。基本上要使用#each,您必须在模板中使用模型中的命名对象。这可行:

    var model = {
       person:{
              name: 'John',
              surname: 'Smith'
       }
    };

    var source = '{{#each person}} \
        <p>Key: {{@key}}, Value: {{this}} &nbsp;</p> \
        {{/each}} '

    var template = Handlebars.compile(source);

    var html = template(model);

0 个答案:

没有答案