2017-09-26 7 views
1

엠버에는 행동 도우미가 있습니다.sendAction 헬퍼는 어떻게 작성합니까?

{{action "actionName" arg1 arg2}} 

, 나는 부모 구성 요소에 작업을 보낼 때, 난 아직 명시 적으로 액션 (SendAction)를 호출하는 아동에 대한 조치를 작성해야합니다. 비록 내가 행동을 버블 링하는 것 일지라도. 나는 이것을 send-action helper로 피하고 싶다;

{{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을 사용, 그것은 할 수 있습니다 무엇이든 구성 요소 내부에서 사용하는 이름과 일치하는 한 오래 원합니다.

위의 내용은 Twiddle : https://ember-twiddle.com/fd56b0b9d017968fc334b3f109760806에서 재현했습니다.

+0

정확하게 패턴을 모방하려고하지만 오류가 계속 발생합니다. '에는 'actionKey''에 대한 액션 핸들러가 없습니다. –

+0

기다림, 내 실수는 다른 곳에서 발생했습니다. 이것이 올바른 대답이라고 생각합니다. 이 수정은''myName'' 대신'myName'을 사용하는 것입니다. 그래서, 괜찮 으면 질문을 계속합니다. 템플릿 대신 컨트롤러에서 클로저 액션을 어떻게 인스턴스화 할 수 있습니까? 그것에 대한 참조. 이것이 가능한가? –

+0

물어보세요! 누구에게 건네 주시겠습니까? 위에 표시된 템플릿 구문은 구성 요소에 클로저 동작을 전달하는 방법입니다. – locks