Как исправить устаревший Ember.Handlebars.registerBoundHelper в Ember 1.13.9?

В настоящее время я обновляюсь с Ember 1.8.1 до Ember 1.13.9. Мое приложение является своего рода старой школой, поскольку НЕ использует ember-cli (без синтаксиса es6).

Как правильно заменить устаревший Ember.Handlebars.registerBoundHelper:

Ember.Handlebars.registerBoundHelper('date-ago',function(date) {
  return moment.utc(date).fromNow();
});

посоветую вам

DEPRECATION: `Ember.Handlebars.registerBoundHelper` is deprecated. 
Please refactor to use `Ember.Helpers.helper`. 
[deprecation id: ember-htmlbars.register-bound-helper]

Поэтому я подумал, что заменить «Ember.Handlebars.registerBoundHelper» на «Ember.Helper.helper» будет достаточно, но тогда эти помощники больше не доступны: «Uncaught Error: Assertion Failed: помощник с именем «date-ago» не может быть нашел!".

Как зарегистрировать помощник htmlbars в Ember 2.0 без синтаксиса ES6 или магии ember-cli?


person justastefan    schedule 05.09.2015    source источник


Ответы (1)


Просто назначьте его приложению:

App.FormatCurrencyHelper = Ember.Helper.helper(function(params, hash) {
  var cents = params[0];
  var currency = hash.currency;
  return currency + cents * 0.01;
});

//template
{{format-currency 75 currency="$"}}

jsbin здесь

person artych    schedule 05.09.2015
comment
Потрясающий. Работает! Хороший пример - мне нравится использование значения параметра, - person justastefan; 05.09.2015
comment
Регистрации хелпера через App.FormatCurrencyHelper=... в документах не было. Раньше это как-то делалось с помощью registerHelper(format-currency, ‹helper›) и работало. Так что спасибо за указание на это более четко. - person justastefan; 17.09.2015