在 ExtJS 6.2 中,我想创建单例静态实用程序类,例如
util.string
、util.math
,在我的代码中,我会调用这样的函数 util.math.sqrt(x);
当我需要使用这些类时,我必须导入它们:
Ext.define('MyAPP.Application', {
extend: 'Ext.app.Application',
name: 'MyAPP',
requires: [
'MyAPP.Util.math',
'MyAPP.Util.string',
]
});
但是要使用我必须输入
MyAPP.Util.math.sqrt(x)
,我只想使用util.math.sqrt(x);
,我尝试使用别名,但它对我不起作用:
Ext.define('MyAPP.Util.math', {
alias: 'util.math',
singleton: true,
});
使用
alternateClassName: 'util.math'
可以,但似乎 alternateClassName
只能用于向后兼容。
我在我的 ExtJS 7 项目中使用 alternateClassName 作为类别名,就像你已经写的那样:
Ext.define('Company.controller.ThemeController', {
singleton: true,
alternateClassName: 'ThmCtrl',
...
someMethod: function(){ }
然后在其他文件中,它的工作原理如下:
ThmCtrl.someMethod()