我正在尝试在我的应用程序中使用以下代码,以便在应用程序刷新后保留我的应用程序的当前状态。
Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
但是在执行上面的代码后,它对我不起作用。
请建议任何方式,因为我是ExtJs
感谢。
答案 0 :(得分:0)
您需要在应用程序的启动功能或控制器的init中定义它。使用状态提供程序时,它的关键使用期限到期。
init : function() {
Ext.state.Manager.setProvider(new Ext.state.CookieProvider({
expires : new Date(Ext.Date.now() + (1000*60*60*24*90)) // 90 days
}));
}
然后根据您尝试保存的组件状态将其有状态属性设置为true,或者给它一个stateId。
以下是保存网格状态的示例:
Ext.define('MyApp.view.Users', {
extend: 'Ext.grid.Panel',
alias: 'widget.users_grid',
title: 'Users',
stateful:true,
stateId:'users_grid_stid',
store:{
data:[
{
first_name:'Joe',
last_name:'Blogs'
}
]
},
columns: {
items: [
{
xtype: 'gridcolumn',
dataIndex: 'first_name',
text: 'First Name',
width: 200
},
{
xtype: 'gridcolumn',
dataIndex: 'last_name',
text: 'Last Name',
width: 200
}
]
}
});
您可以通过修改此网格上其中一列的宽度进行测试,然后在下次加载页面时该列将保留修改后的宽度,即使在浏览器重新启动后也是如此。 检查F12控制台 - >已保存组件状态的应用程序Cookie。