我目前有一个助手,看起来像:
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
。为什么没有传入该值,如何确保它被传入?
您需要将其注册为绑定助手:
Ember.Handlebars.registerBoundHelper('ifEq', function(a, b, opts) {
^ like so
当您注册一个普通/基本助手时,您将看到由字符串值传入的参数,正如您所看到的那样。
但是,如果您希望参数字符串绑定到模板中的属性(在本例中,您这样做了),则需要使用上面的函数签名。