gpt4 book ai didi

javascript - Handlebars js : how to get a variable in an each loop?

转载 作者:行者123 更新时间:2023-11-28 01:16:21 24 4
gpt4 key购买 nike

我正在尝试使用 Handlebars templating engine从浏览器中编译一些模板。我现在使用每个循环构建一个下拉菜单,并且我希望选择其中一个选项。为此,我复制了一个助手(来自 this SO answer ),如下所示:

Handlebars.registerHelper('if_eq', function(a, b, opts) {
if(a == b)
return opts.fn(this);
else
return opts.inverse(this);
});

然后我将以下对象提供给 Handlebars :

{
"adminUsers": [
{
"adminUsername": "user1"
},
{
"adminUsername": "user2"
},
{
"adminUsername": "user3"
}
],
"assignedAdminUser": "user2"
}

在我的 Handlebars 模板中,我这样做:

{{#each adminUsers}}
{{#if_eq adminUsername assignedAdminUser }}
<option selected>{{adminUsername}}</option>
{{else}}
<option>{{adminUsername}}</option>
{{/if_eq}}
{{/each}}

但不幸的是,没有选择任何选项。当我简单地填写“a”和“a”时,相等的助手确实可以工作,但不知何故,分配的AdminUser在#each循环中不可用。我可以在循环外使用 {{signedAdminUser}} 轻松地回显它,但在循环内似乎不可用。

有谁知道如何检查循环中的 adminUser 是否等于分配的用户,以便我可以将该选项设置为选中?欢迎所有提示!

最佳答案

each 循环内,您处于 adminUser 对象的上下文中。这些对象没有 signedAdminUser 属性,这就是您的 if_eq 检查每次都失败的原因。

使用

{{#if_eq adminUsername ../assignedAdminUser}}

相反。

关于javascript - Handlebars js : how to get a variable in an each loop?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23802259/

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