2017-09-26 61 views
1

在余烬中,我们有行动助手;我会如何写一个sendAction助手?

{{action "actionName" arg1 arg2}} 

但是,当我想送行动父组件,我还是要明确地写在调用sendAction孩子的动作。即使我只是冒泡行动。我希望避免使用send-action帮助器;

{{send-action "actionKey" arg1 arg2}} 

有谁知道我该如何实现这个帮手?

回答

4

您应该使用关闭操作来代替,如Triggering Changes with Actions所示。

因此,如果您在名为actionKey的父组件中执行了一项操作,请执行以下操作。

它传递到子组件的封闭动作:

{{my-component myName=(action 'actionKey')}} 

,然后在子组件的模板:

<button {{action myName arg1 arg2}}>click me</button> 

我用myName用于说明目的,它可以是任何只要它与组件内使用的名称相匹配即可。

我已经在一个旋转复制上述:https://ember-twiddle.com/fd56b0b9d017968fc334b3f109760806

+0

我试图模仿你的模式,但我不断收到错误; '没有动作处理程序:'actionKey' –

+0

等待,我的错误是其他地方,我认为这是正确的答案。解决方法是使用'myName'而不是''myName'' 因此,如果您不介意后续问题,我将如何在控制器(而不是模板)中实例化闭包动作,以便通过引用它周围。这可能吗? –

+0

问路!把它传给谁?我上面展示的模板语法是将闭包动作传递给组件的方式。 – locks