访问每个循环内容的另一个变量

时间:2019-01-19 03:55:02

标签: handlebars.js express-handlebars

传递到车把模板的数据如下:

a = {
    x: {
       name: "xavier"
    },
    y: {
       name: "yamal"
    },
}

b = {
    properties: {
        x: {
            property: "number"
        }
    }
}

车把模板如下:

<div class="left-panel">
    {{a.x.name}} // Prints correctly "xavier"
    {{#each b.properties}}
        <h4>{{@key}}</h4> // Prints correctly "x"
        <h4>{{ ../a.[@key].name }}</h4> // does not print "xavier"
    {{/each}}
</div>

如您所见,我希望能够使用name中的键来访问a中的字典的b。我该如何实现?

1 个答案:

答案 0 :(得分:0)

您的问题与该问题基本相同:Handlebars.js - Access object value with a variable key

唯一的额外细节是您将需要使用Handlebars subexpressions来执行两次查找(首先是@key;然后是'name')。

通过子表达式,您可以在@key上查找../a的值,并将其传递给根据第一次查找的结果对'name'的值的第二次查找。

模板中的相关行变为:

<h4>{{lookup (lookup ../a @key) 'name'}}</h4>

这里有个小提琴供您参考: https://jsfiddle.net/76484/b0puy52n/