Я расширяю пример, приведенный в http://docs.sencha.com/architect/2-0/#!/guide/views_forms_extjs, чтобы использовать более ориентированный на MVC подход. Поэтому для этого я хочу переместить обработчик кликов из представления во вновь созданный контроллер.
У меня щелчок даже работает нормально, но я понятия не имею, как работать с формой из контекста контроллера (представление использовало this.getForm()).
Вот что у меня есть до сих пор,
Ext.define('LoginExample.controller.LoginController', {
extend: 'Ext.app.Controller',
onLoginButtonClick: function(button, e, options) {
console.log('button clicked');
if (this.getForm().isValid()) {
this.getForm().submit({
url: 'login.php',
success: function(form, action) {
Ext.Msg.alert('Login Successful!');
},
failure: function(form, action) {
Ext.Msg.alert('Login Failed!');
}
});
}
},
init: function() {
this.control({
"#loginButton": {
click: this.onLoginButtonClick
}
});
}
});
Очевидно, что this в контексте onLoginButtonClick больше не является представлением, а вместо этого является контроллером.
Учитывая предоставленные мне параметры (кнопка Ext.button.Button, событие e, параметры объекта), как мне получить отправку в соответствующей форме?
Я должен отметить это, используя ExtJS 4.