extjs类和命名空间的简称

时间:2013-11-28 13:00:06

标签: extjs extjs4 extjs-mvc

我喜欢

Ext.define('HS.controller.Utility', {
  statics : {
    state : 'Oklahoma'
     }
  });

现在我想从我的控制器访问它,但是在控制器的每个方法中,我都必须编写HS.controller.Utility.state来访问它。目前我正在执行此操作:var ut = HS.controller.Utility然后将state作为ut.state访问,但同样,我要在每个函数中声明此变量。有没有办法在我的控制器中将其设置为一个简短的名称,然后从所有函数访问?

2 个答案:

答案 0 :(得分:4)

有几种方法可以做到,其中最好的方法是:

// Becomes a global variable
var X = Ext.define('My.long.class.Name');

// Set a reference on your main NS at launch time
launch: function() {
    MyApp.X = My.long.class.Name;
}

答案 1 :(得分:2)

比当前答案更简单的方法就是声明一个没有名称空间的alternateClassName。 ExtJs中只包含一行代码,没有初始化或竞争条件。

Ext.define('HS.controller.Utility', {

   //
   // Non-namespaced alternate class name will create 
   // 'globally defined' Utility object.
   //
   alternateClassName: 'Utility',

   statics : {
         state : 'Oklahoma'
      }
   });
});