2017-09-26 68 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

相關問題