gpt4 book ai didi

javascript - Handlebars 在 #each 中的不同对象中到达一般上下文对象中的键值对

转载 作者:行者123 更新时间:2023-12-03 12:31:17 25 4
gpt4 key购买 nike

我有一个 Handlebars 使用的模板和我的上下文,如下所示:

var context = {
abc: ["a","b","c","d"],
xyz: {
words: {
a: 1,
b: 2,
c: 3,
d: 4
}
}
}
var template = Handlebars.compile(tpl);
var output = template(context);

到这里为止一切都很好。但我需要做类似的事情:

{{#each abc }}
<li><a data-toggle="tab" href="#{{ ../xyz.words[this] }}"> {{ this }} </a></li>
{{/each }}

我希望收集 xyz.words 上下文中 key 给出的值,但我什么也没得到。相反,如果我仅使用 {{ this }} 它可以正常工作并从 abc 返回一个值。

我在这里缺少什么?

编辑:

顺便说一句,我尝试使用助手,这就是我所做的:

Handlebars.registerHelper("whatis", function(key){
return xyz.words[key];
});

{{#each abc }}
<li><a data-toggle="tab" href="#{{ whatis this] }}"> {{ this }} </a></li>
{{/each }}

最佳答案

您需要创建一个帮助程序才能使用基于变量的动态 key (running example) 访问对象:

模板:

{{#each abc }}
<li>
{{#getObjectValue ../xyz.words key=this}}
<a data-toggle="tab" href="#{{this}}">
{{/getObjectValue}}
{{ this }} </a>
</li>
{{/each }}

代码:

Handlebars.registerHelper('getObjectValue', function(object, options) {
return options.fn(object[options.hash.key]);
});
var template = Handlebars.compile($("#template").html());
$("#target").html(template(context));

关于javascript - Handlebars 在 #each 中的不同对象中到达一般上下文对象中的键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23908111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com