在ExtJS MVC会话期间存储用户信息的正确方法

sha*_*ten 0 javascript extjs extjs4 extjs-mvc

我在哪里将用户特定(会话)信息存储在ExtJS MVC应用程序中?

定义一个自定义基本控制器是否正确,该控制器可以包含具有用户特定信息的对象并在应用程序中使用它?

例:

Ext.define("MyApp.controller.BaseController", {
    extend:  "Ext.app.Controller", 

    session:  Ext.create("MyApp.lib.UserSession"),

    init: function() {
      var me = this;

      me.session.init();

      /** some code **/
    },

    doSomething: function() {
      var me = this;

      var counter = me.session.get("counter"); 
    }

});
Run Code Online (Sandbox Code Playgroud)

Vya*_*huk 5

如果您需要在页面刷新后保留数据,则可以使用Ext.state.Manager.

在应用程序启动期间使用CookieLocalStorage提供程序设置状态管理器:

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

// Shortcut for quick reference across the project, if MyApp.user is null - user is not authorized.
MyApp.user = Ext.state.Manager.get('user');
Run Code Online (Sandbox Code Playgroud)

在授权或其他操作后保存为当前用户持久保存的数据:

Ext.state.Manager.set('user', {
  first_name: 'John'
  last_name: 'Doe'
});
Run Code Online (Sandbox Code Playgroud)