Как мне выставить компонент через параметры блока в Ember 1.10 + HTMLBars
С блок-параметрами я думал, что следующее будет работать для предоставления компонента вложенному элементу управления без необходимости _yield
хак.
{{#my-component as |myparam|}}
{{log myparam}}
{{/my-component}}
Это не похоже на работу, так как этот журнал возвращает неопределенный.
я использую ember-cli 0.1.15
ember 1.10.0
а также ember-cli-htmlbars 0.7.4
, Что-то, что мне нужно сделать, чтобы включить параметры блока, или это неправильная запись?
ОБНОВИТЬ
Для примера использования рассмотрим гибкую карусель с слайдами и кнопками управления.
{{#carousel-component as |carousel|}}
{{#slide-component}}
<button {{action "nextSlide" target=carousel}}>Next</button>
{{/slide}}
{{/carousel-component}}
И, чтобы быть конкретным, это попытка решить этот случай использования строго с использованием нового block params
синтаксис доступен в Ember 1.10.
2 ответа
Согласно http://emberjs.com/blog/2015/02/07/ember-1-10-0-released.html, новый синтаксис нуждается в блочных параметрах, передаваемых через компонент yield
помощник. Я сделал JSBin для иллюстрации:
Передача всего компонента в виде блок-параметра идет по принципу изоляции, поэтому, если нет исключительной причины, вместо этого передайте конкретные аргументы.
Используйте это как шаблон для вашего компонента:
{{yield context}}
Тогда, как вы пишете:
{{#carousel-component as |carousel|}}
{{#slide-component}}
<button {{action "nextSlide" target=carousel}}>Next</button>
{{/slide}}
{{/carousel-component}}
Подробнее о параметрах блока:
http://emberjs.com/blog/2015/02/07/ember-1-10-0-released.html