App在视图之间切换

时间:2014-04-23 20:28:23

标签: extjs sencha-2

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

问题是,当用户填写登录表单并登录时,视图会更改为主视图,但它不会接收事件(单击“注销”按钮不会执行任何操作。)我知道这不是问题与视图本身一样,因为如果加载主视图而不切换到登录屏幕,它将检测到单击注销按钮。

在我的一个控制器中:

 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.');

1 个答案:

答案 0 :(得分:0)

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

config: {
    refs: {
        loginForm: 'loginForm',
        logoutForm: 'logoutForm'
    },
    control: {
        'button#loginButton' : {
            tap: 'onLogin'
        },
        'button#logoutButton' : {
            tap: 'onLogout'
        }
    }
},