我正在扩展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的上下文中,这不再是视图而是控制器。
给定给我的参数,(Ext.button.Button按钮,事件e,对象选项),如何在适当的表单上获得提交?
我应该使用ExtJS 4来注意这一点。
答案 0 :(得分:4)
button.up('form');
会做到这一点。
要使BasicForm对象可以运行,请使用
button.up( '形式')。getForm()