我喜欢
Ext.define('HS.controller.Utility', {
statics : {
state : 'Oklahoma'
}
});
现在我想从我的控制器访问它,但是在控制器的每个方法中,我都必须编写HS.controller.Utility.state
来访问它。目前我正在执行此操作:var ut = HS.controller.Utility
然后将state
作为ut.state
访问,但同样,我要在每个函数中声明此变量。有没有办法在我的控制器中将其设置为一个简短的名称,然后从所有函数访问?
答案 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'
}
});
});