提问者:小点点

自定义车把块助手


如何在Handlebar中定义自定义块助手(用于Ember. js)?我尝试过使用Handlebar站点上描述的方法,但它似乎不起作用。我从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个答案

匿名用户

6个月后,现在看起来这是可能的,至少在一定程度上是可能的。你可以在这里查看讨论。我同意拉取请求认为这通常应该使用计算属性来处理,但这在某些情况下仍然非常有用。

我将接受这个答案来更新这篇文章。如果我违反了任何SO礼仪,请告诉我。:)

匿名用户

断言是正确的。你不能这样做,至少不是RC6和之前。

您可能希望使用模板创建一个视图并将一些属性绑定到它:

一些hbs

{{#if model1}}
    This is model1 {{model1.name}}
{{/if}}

{{#if model2}}
    This is model2 {{model2.name}}
{{/if}}

视图/一些. js

App.SomeView = Ember.View.Extend({
    templateName: "some"
})

不同的模板

<h3>{{view App.SomeView model1Binding=someModel1 model2Binding=someModel2}}</h3>