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

use*_*942 7 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}}
Run Code Online (Sandbox Code Playgroud)

在Ember 1.10.0中启用的块参数可以帮助我吗?或者这种需求是不可能的?

jcb*_*bvm 12

使用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}}
Run Code Online (Sandbox Code Playgroud)

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

块组件的模板应包含以下内容:

{{ yield this }}
Run Code Online (Sandbox Code Playgroud)

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

  • 在ember 2.2中仍然有效 (2认同)