我目前正在为使用ExtJS4开发的Web应用程序实施状态管理。
例如,在Ext.application中,我写道:
Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
Ext.Component.prototype.stateful = false;
无论哪个控件都应保持其状态,我们都会设置该控件的stateful
属性true
。在下面的示例中,组合框的有状态属性为true且工作正常(这些状态将用于后续登录用户):
{
xtype: 'combo'
stateful: true,
stateId: 'myid'
}
现在我想知道是否有办法根据登录的用户在同一台机器上维护状态。例如,当user1登录并注销时,组合框中选择的值为10,而user2登录并注销组合框中选择的值为20。
我想以这样的方式维护状态:当user1重新登录时,组合框应该显示10,而对于user2,组合框应该显示20.是否可以保持状态为per-用户基础,而不是整个应用程序(机器基础)?
谢谢&问候, Mani Kumar Y
答案 0 :(得分:4)
一种选择是根据当前用户调整stateId
,例如stateId: username + '-myid'
。这样,当“user1”登录时,stateId为user1-myid
,当user2登录时,stateId为user2-myid
。这样,状态可以单独存储和加载,具体取决于当前用户。