首页 > 解决方案 > 使用每个循环的内容访问另一个变量

问题描述

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

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>

如您所见,我希望能够使用 in中的键访问namedict 的。我怎样才能做到这一点?ab

标签: handlebars.jsexpress-handlebars

解决方案


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

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

子表达式将允许您查找@keyon的值../a并将其传递给对'name'第一次查找结果的值的第二次查找。

模板中的相关行变为:

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

这是一个供您参考的小提琴: https ://jsfiddle.net/76484/b0puy52n/


推荐阅读