Handlebars Template:将多个数组中的值打印到表中

时间:2016-01-13 16:14:16

标签: javascript handlebars.js

我正在尝试将多个数组打印到表中。数据包含在两个数组中,就像一个名称值对。我不确定车把语法,所以感谢任何帮助

来自Javascript的数组如下:     keys = {" name"," age"," address"};     values = {" AD"," 2"," 123st"};

把手(版本1.0 rc2)模板如下所示,但似乎没有打印任何东西。任何提示?

<table>
    {{#each keys}}
        <tr>
            <td> {{keys.@index}}</td>
            <td> {{values.@index}} </td>
        </tr>
    {{/each}}
</table>

1 个答案:

答案 0 :(得分:1)

请注意,您问题中的数组不是有效的JavaScript语法,应该用方括号而不是大括号括起来(例如,["name", "age", "address"])。

我认为您的数据结构可以改进,我建议将这两个字符串数组合并到一个对象中:

{
    name: 'AD',
    age: '2',
    address: '123st'
}

我们可以创建一个新模板,迭代我们对象中的每个属性,然后我们可以使用Handlbars' built-in {{@key}}访问密钥:

<script id="Template1" type="text/x-handlebars-template">
    <table>
        {{#each this}}
            <tr>
                <td>{{@key}}</td>
                <td>{{this}}</td>
            </tr>
        {{/each}}
    </table>
</script>

如果由于某种原因,您必须坚持使用这两个数组,我们可以使用Handlebars' lookup helper访问values数组上的require属性:

<script id="Template2" type="text/x-handlebars-template">
    <table>
        {{#each keys}}
            <tr>
                <td>{{this}}</td>
                <td>{{lookup ../values @index}}</td>
            </tr>
        {{/each}}
    </table>
</script>