我将如何编写 sendAction 助手?

How would I write a sendAction helper?

在ember中,我们有动作助手;

{{action "actionName" arg1 arg2}}  

但是,当我想向父组件发送动作时,我仍然必须明确地在调用 sendAction 的子组件上编写一个动作。即使我只是冒泡一个动作。我想通过发送动作助手来避免这种情况;

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

有谁知道我将如何实现这个助手?

您应该改用闭包操作,如 Triggering Changes with Actions 所示。

因此,如果您在名为 actionKey 的父组件中有一个操作,您可以执行以下操作。

作为闭包动作传递给子组件:

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

然后在你的子组件的模板中:

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

我使用 myName 作为说明目的,它可以是任何你想要的,只要它与你在组件中使用的名称相匹配。

我在 Twiddle 中复制了以上内容:https://ember-twiddle.com/fd56b0b9d017968fc334b3f109760806