1

我正在尝试在车把中实现一个简单的“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 变量的实际值。在我的调试器中,我可以验证 this[val1] 实际上设置为 foo 变量的预期值。

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

4

1 回答 1

4

Ember.Handlebars.registerHelper只是传递字符串。有一个registerBoundHelper正在处理,但在你的情况下这应该工作。

Ember.Handlebars.registerHelper('ifeq', function(val1, val2, options) {
   return (this.get(val1) == val2) ? options.fn(this) : '';
});
于 2012-12-12T06:55:29.207 回答