如何在 Ember 1.10 + HTMLBars 中通过块参数公开组件
How do I expose a component via block params in Ember 1.10 + HTMLBars
使用块参数,我认为以下方法可以将组件暴露给嵌套控件,而无需 _yield
hack。
{{#my-component as |myparam|}}
{{log myparam}}
{{/my-component}}
这似乎不起作用,因为此日志 returns 未定义。
我正在使用 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}}
具体来说,这是严格使用 Ember 1.10 中可用的新 block params
语法来解决此用例的尝试。
根据 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#toc_block-params
使用块参数,我认为以下方法可以将组件暴露给嵌套控件,而无需 _yield
hack。
{{#my-component as |myparam|}}
{{log myparam}}
{{/my-component}}
这似乎不起作用,因为此日志 returns 未定义。
我正在使用 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}}
具体来说,这是严格使用 Ember 1.10 中可用的新 block params
语法来解决此用例的尝试。
根据 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#toc_block-params