【发布时间】:2014-09-01 08:55:58
【问题描述】:
当用户注销时,我想删除所有面板,特别是登录页面之后应用程序的主条目,即“Main.js”及其子视图,如您在下面看到的“我的数据”,原因是我想确保加载正确的商店数据而不显示旧数据。
但是,我不确定如何执行此操作以及在用户注销时卸载存储/删除视图的最佳做法。
处理用户注销的最佳做法是什么?
Main.js
Ext.define('app.view.Main', {
extend: 'Ext.tab.Panel',
xtype: 'main',
requires: [
'app.view.TeacherPanel',
'app.view.ParentPanel',
'app.view.AboutPanel',
'app.view.user.Profile'
],
config: {
tabBarPosition: 'bottom',
},
initialize: function() {
console.log('main.initialize');
this.callParent(arguments);
// add data panel
var dataPanel = {
title: 'My Data',
iconCls: 'home',
xtype: eMaliApp.services.App.getActivePanel()
store: 'somestore' // i want this to be reloaded
};
this.add(dataPanel);
// add user panel
var profilePanel = {
title: 'Profile',
iconCls: 'user',
xtype: 'userprofile'
};
this.add(profilePanel);
// add about panel
var aboutPanel = {
title: 'About',
iconCls: 'info',
xtype: 'aboutpanel'
};
this.add(aboutPanel);
// Load general app data
app.services.Store.loadSomeStores();
}
});
Profile.js
onLogoutTap: function(e) {
Ext.Ajax.request({
url: 'session/mobileLogout',
method: 'POST',
useDefaultXhrHeader: false,
withCredentials: true,
callback: function(options, success, response) {
if (!success) {
console.log('Logout failed, redirecting to login page anyway');
}
//Ext.getCmp('main').destroy(); // should be so
Ext.Viewport.removeAll(true, true); // does not remove main
Ext.Viewport.add(Ext.create('app.view.LoginPanel'));
}
});
}
【问题讨论】:
标签: extjs sencha-touch-2 sencha-touch-2.1