【问题标题】:Using a variable as the property name for another object in handlebars使用变量作为车把中另一个对象的属性名称
【发布时间】:2017-04-16 03:40:25
【问题描述】:

我有 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 不支持嵌套变量,因此代码不起作用,但有人知道我的方法吗?

【问题讨论】:

  • 我认为最好在 node.js 代码中进行数组操作,在这种情况下只在把手中提供所需的字段。

标签: javascript express handlebars.js


【解决方案1】:

在研究另一个完全不同的问题时,我偶然发现了答案! 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 在他的评论中所说的做了,但仍然很高兴知道这个选项是可用的。

【讨论】:

    猜你喜欢
    • 2013-11-23
    • 2011-02-17
    • 2013-06-19
    • 2011-11-29
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多