разница между makeBoundHelper и registerBoundHelper в ember-cli

Я пытаюсь создать собственный помощник для форматирования значения, документы ember-cli, похоже, указывают, что мне нужно либо экспортировать makeBoundHelper из моего вспомогательного файла, либо зарегистрироватьBoundHelper из app.js при импорте ранее созданной вспомогательной функции.

Правильно ли я понимаю это? Или вы можете использовать registerBoundHelper из вспомогательного файла и правильно зарегистрировать его.

ИЗМЕНИТЬ

соответствующий код и информация об ошибке ниже:

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

Просто подтолкнул это вверх, используя registerBoundHelper, что приводит к «Uncaught TypeError: undefined is not a function»

http://iamstef.net/ember-cli/ при разрешении хелперов handlebars, кажется, указывает, что я могу использовать registerBoundHelper только изнутри app.js, но не уверен, что это так, или я просто делаю это неправильно.


person ridget    schedule 02.07.2014    source источник


Ответы (1)


Согласно документам

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);

boundFn это makeBoundHelper обратный вызов

person thecodejack    schedule 02.07.2014
comment
спасибо за ответ, видел это в документах, но в контексте ember-cli, кажется, получил неожиданный результат, скоро будет обновлен с ошибкой и образцом кода. - person ridget; 02.07.2014
comment
вот ссылка github. com/emberjs/ember.js/blob/ - person thecodejack; 02.07.2014
comment
github.com/ridget/transactions/blob/master/ app/helpers/ Просто подтолкнул это вверх, использование registerBoundHelper приводит к Uncaught TypeError: undefined is not a function iamstef.net/ember-cli при разрешении помощников руля, похоже, указывает, что я могу использовать registerBoundHelper только из app.js, но не уверен, так ли это, или я просто делаю это неправильно. Цените помощь. - person ridget; 02.07.2014
comment
я думаю, что лучше использовать makeBoundHelper в ember-cli, так как он регистрирует помощник только с именем файла, если оно зачеркнуто... - person thecodejack; 02.07.2014
comment
если вы хотите использовать registerBoundHelper, вы можете сделать это в app.js, как вы упомянули - person thecodejack; 02.07.2014