如何在Handlebars中定义自定义块助手(与Ember.js一起使用)?我尝试过使用Handlebars site中描述的方法,但它似乎不起作用。我从Ember.js得到了这个错误:
Assertion failed: registerBoundHelper-generated helpers do not support use with Handlebars blocks.
这是我帮手的代码。我们的想法是,只有在我传入的模型相同时才会渲染块:
Ember.Handlebars.helper 'sameModel', (model1, model2, options) ->
if model1 is model2
new Handlebars.SafeString(options.fn(this))
else
''
答案 0 :(得分:5)
6个月后,现在看来这是可能的,至少在一定程度上是这样。您可以查看讨论here。我同意拉取请求,通常应该使用计算属性来处理,但在某些情况下这仍然非常有用。
我将接受此答案以保持此帖更新。如果我违反任何礼节,请告诉我。 :)
答案 1 :(得分:3)
断言是正确的。你不能这样做,至少不是RC6之前。
您可能想要创建一个view
template
并绑定一些属性:
<强> some.hbs 强>
{{#if model1}}
This is model1 {{model1.name}}
{{/if}}
{{#if model2}}
This is model2 {{model2.name}}
{{/if}}
<强>视图/ some.js 强>
App.SomeView = Ember.View.Extend({
templateName: "some"
})
不同的模板
<h3>{{view App.SomeView model1Binding=someModel1 model2Binding=someModel2}}</h3>