我怎么能解开一个emberjs车把帮手

时间:2011-12-22 16:33:39

标签: ember.js handlebars.js

我有一个自定义车把帮手:

Handlebars.registerHelper('foo', function(key) {
    return (key + ' bar');
});

在我的HTML中我有:

{{foo beer}}

结果是

<div id="ember127" class="ember-view">beer bar</div>

如何让我自己的车把助手像炭烬{{unbound beer}}一样,只是生产“啤酒吧”而不需要任何额外的标记?

2 个答案:

答案 0 :(得分:5)

因此,我认为您可能会对帮助程序,模板和Ember视图的工作方式感到困惑。您创建的标记是预期的,并且是您使用工作的未绑定帮助程序获得的确切标记。

Ember.Handlebars模板总是放在Ember视图对象中(如上所示)。普通绑定助手会产生的东西是:

<div id="ember127" class="ember-view">
  <script id="metamorph-1-start" type="text/x-placeholder"></script>
      beer bar
  <script id="metamorph-1-end" type="text/x-placeholder"></script>
</div>

现在,如果你想用除div之外的其他标签来包围你的字符串(比如说一个锚标签或其他东西),那么你需要创建一个视图,设置它的模板和标签名称,然后附加该视图。

查看this jsFiddle并查看检查器中的结果窗格,了解我正在谈论的一些示例。希望能为你解决问题。

答案 1 :(得分:5)

Ember has a helper called unbound,可让你包装另一个助手。因此,您可以将绑定(自动)foo帮助器转换为未绑定的帮助器

{{unbound foo beer}}