Ответ 1
Параметры, переданные помощнику, становятся arguments
вспомогательной функции. Значения, которые вы предоставляете в шаблоне сразу после {{helperName
, становятся аргументами. Последним аргументом, переданным помощнику, является объект options
, который предоставляет дополнительную информацию для вспомогательных, таких как, options.hash
и options.contexts
, и т.д. Пара ключей значений, предоставляемых после того, как параметры соответствуют свойству options.hash
.
Для a hello
помощника, который принимает 3 аргумента, хелпер будет,
Ember.Handlebars.helper('hello', function(a, b, c, options) {
return '%@ - %@ - %@'.fmt(a, b, c);
});
Помощник hello
может использоваться в шаблоне, например,
{{hello lorem ipsum dolor}}
Здесь значения свойств lorem
, ipsum
и dolor
будут использоваться и возвращаться как комбинированная строка.
В дополнение к требуемым аргументам, если вы передадите дополнительные параметры, они будут доступны в options.hash
. Эти свойства рассматриваются как строки и не разрешаются по умолчанию. Вам нужно будет использовать options.data.view
для поиска своих значений. См. Этот ответ для примера, если вам нужно это сделать.
Наконец options.data
- это специальное свойство, предоставляемое помощникам. Это raw handlebars Frame
, который содержит переменные, контексты и т.д. Это в основном для использования с блочными помощниками. Поскольку блок-помощники не выполняют рендеринг самостоятельно, а вызывают другие помощники, options.data
позволяет таким блочным помощникам вводить дополнительные переменные в кадр дочерних помощников. Подробнее см. В документах здесь.
Здесь приведен пример jsbin.