ember-cli中makeBoundHelper和registerBoundHelper之间的区别

时间:2014-07-02 06:29:38

标签: ember.js ember-cli

我试图创建一个自定义帮助器来格式化值,ember-cli文档似乎表明我需要从我的帮助文件中导出makeBoundHelper,或者在导入之前从app.js中导出registerBoundHelper创建了辅助函数。

我对此的理解是否正确?或者你可以在帮助文件中使用registerBoundHelper并让它正确注册。

修改

以下相关代码和错误信息:

https://github.com/ridget/transactions/blob/master/app/helpers/to-currency.js

只需将其推高,使用registerBoundHelper结果"未捕获的TypeError:undefined不是函数"

http://iamstef.net/ember-cli/在解决把手帮助下似乎表明我只能在app.js中使用registerBoundHelper,但不确定是否是这种情况或我只是做错了。

1 个答案:

答案 0 :(得分:5)

根据文档

makeBoundHelper是

A (mostly) private helper function to `registerBoundHelper`. Takes the
  provided Handlebars helper function fn and returns it in wrapped
  bound helper form.

  @private
  @method makeBoundHelper
  @for Ember.Handlebars
  @param {Function} function
  @param {String} dependentKeys*

所以基本上两者都做同样的工作。差异registerBoundHelper可以公开获得。参数也不同。

  @method registerBoundHelper
  @for Ember.Handlebars
  @param {String} name
  @param {Function} function
  @param {String} dependentKeys*

makeBoundHelper没有取助手的名字。您可能需要通过调用

来自行注册帮助程序
Ember.Handlebars.registerHelper(name, boundFn);

boundFnmakeBoundHelper回调