Javascript Handlebarsjs:如何在每个循环中获取变量?
我正在尝试使用从浏览器中编译一些模板。现在,我使用each循环构建一个下拉列表,并希望选择其中一个选项。为此,我复制了一个助手,如下所示:Javascript Handlebarsjs:如何在每个循环中获取变量?,javascript,loops,if-statement,handlebars.js,Javascript,Loops,If Statement,Handlebars.js,我正在尝试使用从浏览器中编译一些模板。现在,我使用each循环构建一个下拉列表,并希望选择其中一个选项。为此,我复制了一个助手,如下所示: Handlebars.registerHelper('if_eq', function(a, b, opts) { if(a == b) return opts.fn(this); else return opts.inverse(this); }); 然后,我将以下对象提供给把手: { "admin
Handlebars.registerHelper('if_eq', function(a, b, opts) {
if(a == b)
return opts.fn(this);
else
return opts.inverse(this);
});
然后,我将以下对象提供给把手:
{
"adminUsers": [
{
"adminUsername": "user1"
},
{
"adminUsername": "user2"
},
{
"adminUsername": "user3"
}
],
"assignedAdminUser": "user2"
}
在我的车把模板中,我执行以下操作:
{{#each adminUsers}}
{{#if_eq adminUsername assignedAdminUser }}
<option selected>{{adminUsername}}</option>
{{else}}
<option>{{adminUsername}}</option>
{{/if_eq}}
{{/each}}
{{#每个管理员用户}
{{{#如果{U eq adminUsername assignedAdminUser}}
{{adminUsername}}
{{else}
{{adminUsername}}
{{/if_eq}
{{/每个}}
但不幸的是,没有一个选项被选中。当我简单地填写'a'和'a'时,equal helper确实起作用,但不知何故,在#each循环中分配的管理员不可用。我可以在循环外使用{{assignedadmin}}轻松地回显它,但在循环内似乎不可用
有人知道我如何检查循环中的adminUser是否等于分配的用户,以便将该选项设置为selected吗?欢迎所有提示 在
每个
循环中,您处于adminUser
对象的上下文中。这些对象没有assignedAdminUser
属性,这就是为什么每次if_eq
检查都失败的原因
使用
相反。我只是在贴出答案后才注意到这一点。
{{#if_eq adminUsername ../assignedAdminUser}}