컨트롤러에 하나의 기능이 있습니다. 값을 리턴합니다. 보기에서 해당 함수를 renderer:this.getController('test.controller.Barchart').change();
을 사용하여 호출했지만 작동하지 않습니다. 오류가 발생하여 바람이 불지 않습니다. getController()
. 아무도 그것을 정확하게 부르는 법을 말해 줄 수 있습니까?내선보기에서 컨트롤러 기능 호출 방법
답변
아래의 솔루션을 참조하십시오 !!!
var ControllerRef=<applicationreference>.getController(<ControllerfolderPath>.controllerName);
ControllerRef.<ControllerFunction>();
예 :
var MyApp = Ext.create('Ext.app.Application', {
......
......
});
var ControllerRef = MyApp.getController('general.ManagerController');
ControllerRef.MyFunction();
감사
보기에서 인스턴스 MyApp를 만들 필요가 있습니까? MYApp이 정의되지 않았습니다. – mohan
이 시도 : 당신은 너무처럼 app.js에 전역 변수로 컨트롤러를 넣을 수 있습니다 :
Ext.define('MySharedData', {
my_Controller:Object
});
을에서 귀하의 컨트롤러 :
MySharedData.my_Controller=this.getController('<ControllerfolderPath>.controllerName');
다음보기에서 원하는 함수를 호출
MySharedData.my_Controller.my_Function();
을 컨트롤러가 고려 뷰 호출 악마의 본질을 가졌어요. 뷰는 컨트롤러를 인식해서는 안됩니다. 저는 ExtJS를 사용하는 대규모 프로젝트의 선두 주자입니다. 뷰의 JSON 설명 이외에 다른 뷰에서는 아무것도 허용하지 않습니다. 컨트롤러를 찾는 논리는 컨트롤러 자체에 있어야합니다.
ExtJS를 배우고 일한 이래로 저는 오래 전부터 질문을했습니다. 컨트롤러를 호출하지 않고 뷰 수신기 이벤트를 어떻게 처리합니까? 그리드가 있고 행 선택 이벤트에 컨트롤러 함수를 실행하고 싶습니다. 뷰 수신기에서 컨트롤러를 호출하지 않고 어떻게합니까? – CrazySabbath
YOU_APP_NAME.app.getController ('MyController') –