作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 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/
我是一名优秀的程序员,十分优秀!