我新的ExtJS的,並有以下問題:我有一個一流的登錄窗口,實現FormPanel中:在我的主應用程序類引用調用者類稱爲類在ExtJS的
Ext.define('WebDesktop.LoginWindow', {
extend: 'Ext.window.Window',
title: Translator.get("login_window:Anmeldung"),
layout: 'fit',
closable: false,
resizable: false,
constructor: function() {
this.callParent();
},
initComponent: function() {
var me = this;
me.loginPanel = new WebDesktop.LoginPanel(me);
me.items = [
me.loginPanel
],
me.callParent();
},
});
Ext.define('WebDesktop.LoginPanel', {
extend: 'Ext.form.Panel',
header: false,
bodyPadding: 5,
reset: true,
waitMsgTarget: true,
url: Routing.generate('_route_core_login'),
items: [{
xtype: 'textfield',
fieldLabel: Translator.get("login_window:Benutzername"),
name: '_username',
width: 300,
},
{
xtype: 'textfield',
fieldLabel: Translator.get("login_window:Passwort"),
name: '_password',
inputType: 'password',
width: 300,
}],
buttons: [{
text: Translator.get("login_window:Anmelden"),
handler: function() {
var form = this.up('form').getForm();
if (form.isValid()) {
// Submit the Ajax request and handle the response
form.submit({
success: /* Call a function that is defined in main application class */,
failure: function(form, action) {
Ext.Msg.show({
title: Translator.get("login_window:Benutzeranmeldung"),
msg: action.result ? action.result.message : 'No response',
buttons: Ext.Msg.OK,
icon: Ext.Msg.ERROR
});
form.reset();
}
});
}
}
}],
});
現在我創建LoginWindow實例並將其顯示給用戶。在這個主類中還有一個定義的函數,當登錄窗口的表單成功提交時應該調用它。但我不知道如何提及這個功能。我試圖將調用者類的引用傳遞給被調用類並將其保存在那裏,但那不起作用。正如你可以看到我沒有使用MVC架構,我知道這不是最佳實踐...
爲什麼不使用最佳實踐? – dbrin
我還沒有找到一個例子說明如何以令人滿意的方式使用控制器 –
這個怎麼樣? http://docs.sencha.com/ext-js/4-1/#!/guide/application_architecture – dbrin