我正在扩展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
}
});
}
});
显然 onLoginButtonClick 上下文中的 this 不再是视图,而是控制器。
给定给我的参数(Ext.button.Button 按钮、事件 e、对象选项),我如何在适当的表单上提交?
我应该使用 ExtJS 4 注意到这一点。