extjs 4如何从商店声明全局变量

时间:2014-06-01 14:20:35

标签: variables extjs4 store global

我们有一个extJs4 - spring MVC应用程序。 我想声明一个包含用户信息(名称,名字,角色)的变量。使用角色,我们可以将字段设置为只读或隐藏应用程序的某些部分。

在我的app.js中:

Ext.application({
   name: 'appname',
   appFolder: 'js/app',
   enableQuickTips:true,
   controllers: [
              'MainController',....

              ],
   autoCreateViewport: true,
   globals:
      var1 : 5    //it works for simple variable

});

我想用这个

创建商店变量
var appglobalstore = Ext.getStore('MyStore');

这是不可能的:

globals:
     appglobalstore : Ext.getStore('MyStore');

为了获得像这样的极值(我猜)

var role= appname.app.globals.role

有可能吗?或者,如果它不可能,我必须申报这个角色吗?像那样

var role = Ext.getStore('myStore').getAt(0).raw.role;

1 个答案:

答案 0 :(得分:2)

为您的应用程序指定的名称是ExtJS为您提供的全局变量的名称。

所以,你可以这样做:

appname.role = role = Ext.getStore('myStore').getAt(0).raw.role;

然后您可以通过以下方式访问您的角色:

var x = appname.role;

您可以在应用的启动属性中将值分配给“appname.role”:

Ext.application({
   name: 'appname',
   appFolder: '/extjs-app/app',
   controllers: [
      'MainController', ..
   ],
   requires: [
      'appname.utils.Logger', ...
   ],
   autoCreateViewport: true,
   launch: function() {
      appname.role = role = Ext.getStore('myStore').getAt(0).raw.role;
   }
});