我尝试在视图之间切换应用,具体取决于用户是否已登录。该应用程序将首先尝试加载主视图,然后在其中一个控制器的启动功能中,如果您未登录,则会切换到登录表单。此部分没有任何问题。
问题是,当用户填写登录表单并登录时,视图会更改为主视图,但它不会接收事件(单击“注销”按钮不会执行任何操作。)我知道这不是问题与视图本身一样,因为如果加载主视图而不切换到登录屏幕,它将检测到单击注销按钮。
在我的一个控制器中:
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.');
答案 0 :(得分:0)
所以我发现答案并不明显:在控制器中定义事件时,我需要在标识符之前添加按钮,例如:
config: {
refs: {
loginForm: 'loginForm',
logoutForm: 'logoutForm'
},
control: {
'button#loginButton' : {
tap: 'onLogin'
},
'button#logoutButton' : {
tap: 'onLogout'
}
}
},