Какая разница между помощниками Handlebars и помощниками Handberbars Ember?
Я не могу догнать все эти изменения, сделанные для простых ручек и модифицированных помощников Ember Handlebars. Если я правильно помню, вы можете зарегистрировать помощника со следующими методами.
- Ember.Handlebars.helper
- Ember.Handlebars.registerHelper
- Ember.Handlebars.registerBoundHelper
- Handlebars.registerHelper
Это слишком много для меня. Не могли бы вы объяснить это на земле, какая разница?
Ответы
Ответ 1
Ember.Handlebars.registerHelper
- базовый помощник, который не привязывает строку аргумента к свойству. Например, рассмотрим помощник hello
, созданный с помощью registerHelper
, который просто возвращает приветственное сообщение.
Ember.Handlebars.registerHelper('hello', function(name) {
return 'Hello ' + name;
});
Когда вы используете его в шаблоне,
{{hello name}}
Вы получите текст дисплея как Hello name
. Значение свойства name
выглядит не.
Чтобы получить значение свойства name
в нужном вам помощнике, registerBoundHelper
. Как видно из названия, он создает привязку к свойству name
. В любое время при изменении name
помощник снова вызывается для повторного запуска. Реализация аналогична,
Ember.Handlebars.registerBoundHelper('hello', function(name) {
return 'Hello ' + name;
});
Ember.Handlebars.helper
совпадает с registerBoundHelper
с некоторыми дополнительными проверками для автоматического определения того, какой хелпер вы хотите.
Ваниль Handlebars.registerHelper
не используется в Ember. Он будет создавать похожие помощники для проектов, не использующих Ember.
Ответ 2
-
Ember.Handlebars.helper
должен использоваться для регистрации помощников, другие методы - только ограниченные версии. Ember.Handlebars.helper
отображает HTML с привязками, которые синхронизируют представления и модели. Функции, представления и компоненты могут предоставляться как вспомогательные определения.
-
Ember.Handlebars.registerBoundHelper
точно так же, как Ember.Handlebars.helper
, но вы можете предоставить только функцию как определение помощника.
-
Ember.Handlebars.registerHelper
ранее делегирован Handlebars.registerHelper
. Ember.Handlebars.registerHelper
больше не существует, но Handlebars.registerHelper
по-прежнему используется внутри Ember
для создания всех помощников после установки привязок.