Вы должны хранить экземпляры модели в контроллере, который управляет вашей панелью (просмотр).
Однако, если вы не пишете код в соответствии с шаблоном модель-представление-контроллер, вы можете прикрепить его к форме пожертвования:
Ext.getCmp('DonateItemForm').itemDetails = itemDetails;
Но основная идея должна быть ясной:
Каждый раз, когда вы хотите получить доступ к экземпляру модели, просто просмотрите объект, который управляет им (либо контроллер формы, либо сама форма).
[править]
Чтобы сохранить ваши данные в контроллере, вы должны сначала отправить их этому контроллеру:
По сути, ваш обработчик должен отправить данные вашему контроллеру, отправив ему сообщение. Сообщение будет содержать полезную нагрузку, содержащую данные формы, которые вы хотите отправить.
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" теперь будет содержать нужный вам itemDetails. Конечно, вы можете назвать его как угодно, и можете добавить больше участников в отправленное сообщение, если хотите.
Теперь вам нужно создать метод с именем «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
}
});
Я не тестировал этот код, но идея должна быть достаточно ясной.