使用变量作为把手中

时间:2017-04-16 03:40:25

标签: javascript express handlebars.js

我有2个对象数组,一个包含一些对象列表,其中包含FirstName,LastName,PhoneNum等属性名下的一些信息,另一个数组存储一个与属性名称匹配的字符串列表第一个数组。在下面做了一个小例子:

Array1 = [ {FirstName: John, LastName: Doe, PhoneNum: 123},
           {FirstName: Bob, LastName: Smith, PhoneNum: 456} ]
Array2 = [ "FirstName", "PhoneNum" ]

如何使用第二个数组的值来确定要显示的属性:

这就是我目前所拥有的:

{{#each MemberDetails}}
<tr>
    <td class="col-md-1 vert-align">
        <!-- ....... -->
    </td>
    {{#each ../MemberDesc}}
      <td class="vert-align">{{../{{this}} }}</td>  <--- This is what I'm trying to do
    {{/each}}
    <td class="vert-align">
        <!-- ....... -->
    </td>
</tr>
{{/each}}

Handlebar不支持嵌套变量,因此代码不起作用,但是有人知道我这样做的方法吗?

1 个答案:

答案 0 :(得分:0)

在调查另一个完全不同的问题时,我偶然发现了答案! Handlebars附带了查找助手功能,它完全符合我的需要。这是新代码:

{{#each MemberDetails}}
<tr>
    <td class="col-md-1 vert-align">
        <!-- ....... -->
    </td>
    {{#each ../MemberDesc}}
      <td class="vert-align">{{lookup ../this this}}</td> 
    {{/each}}
    <td class="vert-align">
        <!-- ....... -->
    </td>
</tr>
{{/each}}

../this引用外部循环中的当前项,查找函数使用第二个参数this作为第一个参数的键。

我最终做了Tolsee在评论中所说的话,但仍然很高兴知道这个选项可用。