0

我正在尝试在视图之间切换应用程序,具体取决于用户是否登录。该应用程序将首先尝试加载主视图,然后如果您未登录,则在控制器的其中一个启动功能中将切换到登录表单。这部分没有任何问题。

问题是,当用户填写登录表单并登录时,视图确实更改为主视图,但它没有收到事件(单击注销按钮什么也不做。)我知道这不是视图的问题本身,因为如果在没有切换到登录屏幕的情况下加载主视图,它将检测到单击注销按钮。

在我的一个控制器中:

 launch: function() {
    this.session = localStorage.getItem('session');
    if(!this.session) {
        Ext.Viewport.remove(Ext.Viewport.getActiveItem(), true);
        Ext.Viewport.add(Ext.create('App.view.Login'));
    }
},

当登录发生时,我像这样切换到主视图(包括注销按钮)

Ext.Viewport.remove(Ext.Viewport.getActiveItem(), true);
Ext.Viewport.add(Ext.create('App.view.Main'));
Ext.Msg.alert('Logged In', 'Login successful.');
4

1 回答 1

0

所以我发现了根本不明显的答案:在控制器中定义事件时,我需要在标识符之前添加按钮,例如:

config: {
    refs: {
        loginForm: 'loginForm',
        logoutForm: 'logoutForm'
    },
    control: {
        'button#loginButton' : {
            tap: 'onLogin'
        },
        'button#logoutButton' : {
            tap: 'onLogout'
        }
    }
},
于 2014-04-23T21:18:02.230 回答