如何从块形式组件Ember.js中插入的模板触发组件的操作?

时间:2015-02-13 18:35:07

标签: ember.js

我想从插入块状组件的模板中解开组件的动作,如下所示:

{{#block-component}}
   <p> HTML inserted in block form </p>
   <p> How trigger a action from block-component (not your parent) from this scope? </p>
   <p {{action 'actionFromBlockComponent'}}> Fire component's action!!! </p>
{{/block-component}}

在Ember 1.10.0中启用的块参数可以帮我解决这个问题吗?或者这种要求是不可能的?

1 个答案:

答案 0 :(得分:11)

使用1.10.0中的新块参数,可以通过以下方式实现:

{{#block-component as |component|}}
    <p> HTML inserted in block form </p>
    <p> How trigger a action from block-component (not your parent) from this scope? </p>
    <p {{action 'actionFromBlockComponent' target=component}}> Fire component's action!!! </p>
{{/block-component}}

请注意设置为块参数的操作的目标。

块组件的模板应该包含:

{{ yield this }}

它只是传递组件本身,以用作使用此组件的任何模板的块参数。