Как мне выставить компонент через параметры блока в Ember 1.10 + HTMLBars

С блок-параметрами я думал, что следующее будет работать для предоставления компонента вложенному элементу управления без необходимости _yield хак.

{{#my-component as |myparam|}}
    {{log myparam}}
{{/my-component}}

Это не похоже на работу, так как этот журнал возвращает неопределенный.

я использую ember-cli 0.1.15ember 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 для иллюстрации:

http://emberjs.jsbin.com/jacosewefu/4/edit

Передача всего компонента в виде блок-параметра идет по принципу изоляции, поэтому, если нет исключительной причины, вместо этого передайте конкретные аргументы.

Используйте это как шаблон для вашего компонента:

{{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

Другие вопросы по тегам