自定义把手块助手

时间:2013-07-24 20:39:41

标签: ember.js handlebars.js

如何在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
        ''

2 个答案:

答案 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>