5

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

2 回答 2

5

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

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

于 2014-04-02T13:37:51.237 回答
3

断言是正确的。你不能那样做,至少 RC6 及之前的版本不能。

您可能想view用 a创建 atemplate并将一些属性绑定到它:

一些.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>
于 2013-07-25T02:42:29.147 回答