Handlebars帮助程序未获取变量的值
Handlebars helper not getting value of variable
我正在尝试为Handlebars/Ember应用程序创建一个自定义的"if_eq"帮助程序。使用以下语法调用帮助程序:{{#if_eq item.name'bob'}},但正在接收两个要比较的字符串值(字面意思是'item.name'和'bob]),而不是调用上下文中的值"item.name"。想知道我可能做错了什么。谢谢
下面列出了相关的代码片段,并创建了一个jsbin来说明这里的问题
帮助程序代码
Handlebars.registerHelper('if_eq', function(a, b, opts) {
console.log( "Comparing ", a, b);
if(a == b)
return opts.fn(this);
else
return opts.inverse(this);
});
模板代码
<ul>
{{#each item in model}}
{{#if_eq item.name 'bob'}}
<li>We have a bob here!</option>
{{else}}
<li>A non-bob</li>
{{/if_eq}}
{{/each}}
</ul>
Handlebars助手在绑定属性方面表现不佳。
通常,您会希望在模板中避免此类逻辑。具体来说,要么在控制器上创建一个方法,要么在对象本身上创建,这样就可以说:if item.isBob
。
例如。http://emberjs.jsbin.com/fudadugemu/2/edit?html,js,输出
或者你可以使用一个组件,并从中获得一些乐趣,比如:
http://emberjs.jsbin.com/buyeqenumo/2/edit
(尝试更改bob输入)
相关文章:
- 从javascript变量获取php会话
- 是否将Javascript变量保存为PHP变量?获取、发布、COOKIE
- 从动态变量获取数组
- PHP 和 Javascript:使用 Javascript 变量获取文件内容
- 如何从 php 变量获取值到我们的 javascript 文件中
- 从 javascript 变量获取 InnerHtml
- 如何使用此变量获取 typeahead.js 中输入的 id
- 使用参数变量获取传递给 ES6 箭头函数的参数
- 如何将此值作为变量获取
- Javascript-使用一个变量获取数组的一部分
- 无法使用AJAX将JS变量获取到PHP
- 从angularjs中的变量获取数据
- 使用jquery中的变量获取字段值
- 将变量获取到url并导航选定的变量
- 将Struts2 valuestack变量获取到JQuery
- Javascript-使用变量获取对象值
- 为每个变量获取一个新的随机数
- 从JavaScript中的第二个变量获取名为的变量的值
- 使用变量获取 JavaScript 值
- HTML选择列表-通过传递变量获取文本值