2013-04-08 4 views
3

EXTJS 4 MVC 아키텍처를 처음 사용합니다. 내보기에서 호출하려는 컨트롤러에서 하나의 함수가 있습니다. 어떻게 그 함수를 호출 할 수 있습니까?EXTJS 4의 뷰에서 컨트롤러 메서드 호출 MVC

+0

함수는에서 호출해야합니다. 귀하의 컨트롤러가 귀하의보기가 아닙니다. 즉 모든 논리는 컨트롤러가 아니라보기에 있어야합니다. 코드는 어떻게 생겼습니까? – cclerville

답변

0

메시지를 보낼 수 있습니다 : YourApp.fireEvent('my_event', options) 및 귀하의 컨트롤러 안으로 들어 있습니다. 그러나 그것은 옳지 않습니다.

만약 당신이 말하는대로 사용하고 있다면 mvc 당신은보기에 코드를 작성하면 안됩니다. (참고 : 비즈니스 로직이 아닌 열 렌더러 코드와 같은 코드가있을 수 있습니다.) 보기는 단지 구성 요소 그룹이어야합니다. 구성 요소 이벤트 수신기를 만들려면 컨트롤 Ext.app.Controller 메서드를 사용하십시오.

+0

보기에서 컨트롤러로 이벤트를 전달하는 것이 올바른 방법입니다. 어떻게 다른 관점과 컨트롤러 사이에서 의사 소통을합니까? – catalinux

+0

내가 이미 쓴 것처럼 : http://docs.sencha.com/ext-js/4-1/#!/api/Ext.app.Controller-method-control – Damask

+0

Ok. 나는 너의 견해를 얻는다. 그것은 자신의 컨트롤러와 대화하고 싶을 때 발생합니다. 그렇지 않으면 앱이나 특별 버스 이벤트에서 이벤트를 실행합니다. 발사 이벤트가 올바른 방법입니다. 보기에서 컨트롤러를 직접 호출하는 것은 좋지 않습니다. – catalinux

0

당신과 같이 그것을 할 수 있습니다 : 컨트롤러에서

Ext.define('MySharedData', { 
    my_Controller:Object 

}); 

:

MySharedData.my_Controller=this.getController('<ControllerfolderPath>.controllerName'); 

하는 것은 다음 전화
당신은 너무처럼 app.js에서 전역 변수로 컨트롤러를 넣을 수 있습니다 보기에서 원하는 함수 :

MySharedData.my_Controller.my_Function(); 
관련 문제