提问者:小点点

Ember车把与传入值的混淆


我目前有一个助手,看起来像:

Ember.Handlebars.registerHelper('ifEq', function(a, b, opts) {
  if (a == b) {
    return opts.fn(this);
  } else {
    return opts.inverse(this);
  }
});

在我的模板里我有

  GRAPH_TYPE: {{graphType}}
  {{#ifEq graphType "p_graph"}}
    TEST1
  {{else}}
    TEST2
  {{/ifEq}}

然而,这显示

GRAPH_TYPE: p_graph TEST2

这让我很困惑,因为上面应该有一个精确的字符串匹配。

因此,我深入研究了Web检查器并注意到Handlebar助手中a的值为graph Type。为什么没有传入该值,如何确保它被传入?


共1个答案

匿名用户

您需要将其注册为绑定助手:

Ember.Handlebars.registerBoundHelper('ifEq', function(a, b, opts) {
                         ^ like so

当您注册一个普通/基本助手时,您将看到由字符串值传入的参数,正如您所看到的那样。

但是,如果您希望参数字符串绑定到模板中的属性(在本例中,您这样做了),则需要使用上面的函数签名。