0

我是 ExtJS 的新手,遇到以下问题:我有一个类 LoginWindow,它实现了一个 FormPanel:

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 架构,我知道这不是最佳实践......

4

1 回答 1

1
me.loginPanel = new WebDesktop.LoginPanel();
me.loginPanel.referenceToParentWindow = me;

这是你想要的?我很迷茫。

于 2013-01-04T22:41:06.517 回答