0
我正在尝试为Handlebars/Ember应用程序创建一个自定义的“if_eq”助手。该帮助器使用以下语法调用:{{#if_eq item.name'bob'}},但接收2个字符串值进行比较(字面意思是'item.name'和'bob'),而不是“item .name“在它被调用的上下文中。想知道我可能会做错什么。谢谢!扶手助手没有获得变量值
相关的代码段列在下面,并且还创建了一个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>
嘿科里,感谢您的答复。失望地听到助手不能使用绑定的属性......几乎使他们无用。可以使用未绑定的属性吗?认为我有些误导的手把助手库,如:https://github.com/danharper/Handlebars-Helpers,但他们遭受同样的问题,似乎 – MackelRow 2015-03-31 17:39:45
当我说“不玩好, “我的意思是你可以做到这一点,它只是需要跳过篮球。如果你真的有心做它:http://emberjs.com/api/classes/Ember.Handlebars.html#toc_example-with-multiple-bound-properties – 2015-04-01 08:34:51