如何将变量传递给车把助手?

时间:2012-12-11 23:31:56

标签: ember.js handlebars.js

我试图实现一个简单的" if-equal"车把上的帮手,如:

Ember.Handlebars.registerHelper('ifeq', function(val1, val2, options) {
    return (val1 == val2) ? options.fn(this) : '';
});

并像这样使用它(让我们假设foo变量设置为" bar"):

{{#ifequal foo "bar"}} show something {{/ifequal}}

问题是,当传入val1时,它作为字符串" foo"传入,而不是foo变量的实际值。在我的调试器中,我可以验证这个[val1]实际上是设置为foo变量的预期值。

Ember会以某种方式改变行为吗?

1 个答案:

答案 0 :(得分:4)

Ember.Handlebars.registerHelper只是传入字符串。正在处理registerBoundHelper,但在您的情况下,这应该可以正常工作。

Ember.Handlebars.registerHelper('ifeq', function(val1, val2, options) {
   return (this.get(val1) == val2) ? options.fn(this) : '';
});