我将如何编写 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。
在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。