Ember Handlebars在传递价值观时感到困惑

时间:2015-10-07 00:19:18

标签: ember.js handlebars.js

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

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

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

所以,我挖掘了网络检查员并注意到Handlebars助手中a的值为graphType。为什么没有传入的值,我如何确保传入它?

1 个答案:

答案 0 :(得分:1)

您需要将其注册为绑定帮助程序:

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

当你注册一个普通/基本的帮助器时,你会看到你正在目击的字符串值传入的参数。

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