【发布时间】:2015-03-30 21:11:34
【问题描述】:
我正在尝试为 Handlebars / Ember 应用程序创建自定义“if_eq”帮助程序。使用以下语法调用帮助程序:{{#if_eq item.name 'bob'}},但接收到要比较的 2 个字符串值(字面意思是 'item.name' 和 'bob'),而不是“item”的值.name”在它被调用的上下文中。想知道我可能做错了什么。谢谢!
下面列出了相关代码sn-ps,还创建了一个jsbin来说明问题here
助手代码
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>
【问题讨论】:
标签: javascript ember.js handlebars.js