당신은에 모델 인스턴스를 저장해야합니다 (핸들러의 외부) 전역 변수를 생성하고 처리기에 할당 글로벌 컨트롤러 (보기)를 관리합니다.
Ext.getCmp('DonateItemForm').itemDetails = itemDetails;
을하지만 기본 개념은 명확해야한다 : 당신이 Model-View-Controller 패턴에 따라 코딩하지 않는 경우 그러나, 당신은 기부 양식에 첨부 할 수 액세스하려는 모든 시간을 모델 인스턴스를 관리하는 객체 (양식 컨트롤러 또는 양식 자체)를 거쳐야합니다.
[편집]
컨트롤러에서 먼저 해당 컨트롤러로 전송해야 할 데이터를 저장하려면 : 기본적으로
를, 그에게 메시지를 발송하여 컨트롤러에 데이터를 전송해야 핸들러 . 메시지에는 보내려는 양식 데이터가 들어있는 페이로드가 포함됩니다.
handler: function() {
var formValues = Ext.getCmp('DonateItemForm').getValues();
var itemDetails = Ext.create('App.model.ItemDetails', formValues);
Ext.dispatch({
controller: "YourController",
action: 'MethodOnYourController',
yourDetails: itemDetails
});
}
"yourDetails"는 필요한 항목을 보관합니다. 물론 원하는 이름을 붙일 수 있으며 원하는 경우 파견 된 메시지에 더 많은 회원을 추가 할 수 있습니다.
이제 당신은이 이벤트를 잡을 수 있습니다 "MethodOnYourController"라는 방법을 확인해야합니다 :이 코드를 테스트하지 않았습니다
YourController = Ext.extend(Ext.Controller, {
MethodOnYourController: function(options)
{
this.itemDetails = options.yourDetails; // get the "yourDetails" that you added and store it in this controller
}
});
,하지만 아이디어는 꽤 명확해야한다.
답장을 보내 주셔서 감사합니다. MVC 패턴을 사용하고 있습니다 - 컨트롤러에 모델 인스턴스를 저장하는 방법은 무엇입니까? 정확히 내가 원하는대로 들리는 군. – Brett
당신을 진심으로 환영합니다! 내 게시물을 수정했습니다. 내 대답은 "\ [편집 \]"표시가 지난 콘텐츠를 참조하십시오. –
정말 고마워요. 완벽하게 이해합니다. 나는 성공을 거두지 않고 이것을 온라인으로하는 방법을 찾으려고 노력했다. 이 접근법을 어디에서 얻을 수 있는지 말해 줄 수 있습니까? 저는 현재 시애틀의 Sencha Workshop에 있습니다. – Brett