2016-06-03 4 views
0

처음에는 Ember에 처음으로 익숙해졌습니다. 따라서 상호 작용하는 방식이 나를 쉽게 혼란에 빠지게합니다.템플릿 구성 요소에서 응용 프로그램의 경로 작업 사용

기존 Ember 응용 프로그램에서 작업하고 있습니다. 앱의 routes/application.js.es6에는 액션이 ​​정의되어 있습니다. 이러한 행동이 애플리케이션 경로에있는 경우 어디서나 액세스 할 수 있습니까?

특히 템플릿/구성 요소에서 응용 프로그램의 경로 동작 중 하나를 사용하려고합니다.

구성 요소의 js 파일에서 응용 프로그램 경로의 동작을 사용하려면 무언가를 주입하거나 가져와야합니까?

답변

1

This demo perfectly demonstrates the thing you try to achieve.

첫째, 응용 프로그램의 경로에서 작업을 정의 :

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    actions: { 
    myActionFromApp() { 
     console.log('myAction from application fired'); 
    } 
    } 
}); 

다음 구성 요소에 대한 행동의 템플릿 통과 이름 :

{{my-component myAction='myActionFromApp'}} 

는 그런 다음 구성 요소에서 ApplicationRoute 조치를 호출 할 수 있습니다 :

import Ember from 'ember'; 

export default Ember.Component.extend({ 
    actions: { 
    myAction() { 
     this.sendAction('myAction'); 
    } 
    } 
}); 
콘솔

<button {{action 'myAction'}}>Fire action myAction</button> 

결과는 다음과 같습니다 : 당신이 예상된다 버튼을 클릭하면 응용 프로그램에서

시켜라가

을 발사 누군가가 버튼을 클릭 할 때 데모에서

나는 그것을 할.

관련 문제