Javascript 在ExtJS中的被调用类中引用调用方类
我是ExtJS新手,有以下问题:我有一个类LoginWindow,它实现了一个FormPanel:Javascript 在ExtJS中的被调用类中引用调用方类,javascript,extjs,Javascript,Extjs,我是ExtJS新手,有以下问题:我有一个类LoginWindow,它实现了一个FormPanel: Ext.define('WebDesktop.LoginWindow', { extend: 'Ext.window.Window', title: Translator.get("login_window:Anmeldung"), layout: 'fit', closable: false, resizable: false, constructor: functi
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架构,我知道这不是最佳实践
me.loginPanel = new WebDesktop.LoginPanel();
me.loginPanel.referenceToParentWindow = me;
这就是你要找的吗?我很困惑。你为什么不使用最佳实践?我还没有找到一个例子来解释如何以令人满意的方式使用控制器。这是怎么回事?我尝试过这个,但是如果我尝试在LoginPanel类中访问这个引用,它是未定义的,我玩了一点,现在似乎可以工作了,所以谢谢