外部国家管理?

时间:2017-06-30 05:54:43

标签: extjs extjs4 extjs4.2

我正在尝试在我的应用程序中使用以下代码,以便在应用程序刷新后保留我的应用程序的当前状态。

Ext.state.Manager.setProvider(new Ext.state.CookieProvider());

但是在执行上面的代码后,它对我不起作用。

请建议任何方式,因为我是ExtJs

的新手

感谢。

1 个答案:

答案 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。