我试图让它一旦用户登录并点击刷新它们将保持在同一页面上。但是现在,当用户登录并单击刷新时,它们将被发送回登录屏幕。我知道会话存储用于浏览器未关闭,这是我需要的。我似乎无法让它正常工作。
模型
Ext.define('MeterReadingsApp.model.Login', {
extend: 'Ext.data.Model',
config: {
fields: [{name: "username", type:'string'}, {name: "password",
type:'string'}],
identifier: 'uuid'
}
});
存储
Ext.define('MeterReadingsApp.store.Login', {
extend: 'Ext.data.Store',
//requires: ['Ext.data.proxy.SessionStorag'],
config: {
model: 'MeterReadingsApp.model.Login',
//sessionStorage.type:
proxy: {
//use sessionstorage if need to save data for that
//specific session only
type: 'sessionstorage',
id : 'Login'
},
autoLoad: false
}
});
//var Login = Ext.create('MeterReadingsApp.store.Login');
//Login.load();
app.js
launch: function() {
// Destroy the #appLoadingIndicator element
Ext.fly('appLoadingIndicator').destroy();
var session=Ext.getStore('Login');
session.load();
var record = session.getAt('userName');
alert(record);
if(record != undefined){
//exits to main menus not login
}
else
Ext.Viewport.add(Ext.create('MeterReadingsApp.view.Login'));
},
控制器
loginButton: function(){
// var me = this;
Ext.Ajax.request({
useDefaultXhrHeader:false,
url: getLogonUrl(),
method: 'POST',
headers: { 'Content-Type' : 'application/x-www-form-urlencoded' },
params : {
"userName": Ext.getCmp('username').getValue(),
"password": Ext.getCmp('password').getValue()
},
success: function (response) {
Ext.getCmp('failLogin').hide(),
Ext.getStore('Login').sync();
Ext.Viewport.setActiveItem({xtype: 'Main'});
Ext.getStore('Campuses').load();
},
failure: function(response) {
Ext.getCmp('loginform').doSetHeight(250),
Ext.getCmp('failLogin').show();
}
});
},
感谢您的帮助!
答案 0 :(得分:0)
您需要在商店中设置storeId属性。您正在尝试使用代理的ID来获取商店。