Extjs Sencha AlternateClassName在编译版本中不起作用
我在Sencha应用程序中工作。Extjs Sencha AlternateClassName在编译版本中不起作用,extjs,sencha-cmd,sencha-touch-2.3,Extjs,Sencha Cmd,Sencha Touch 2.3,我在Sencha应用程序中工作。 我已经创建了两个实用程序类作为单例组件(助手、服务等)。 我正在使用alternateClassName为这些类提供一个较短的名称。 它工作得很完美,但在编译用于生产后停止工作 我不知道为什么,需要帮助才能让它工作 查看以下示例: 为了简单起见,我使用sencha cmd创建了一个演示应用程序。该应用程序是“演示版”。 整个应用程序都是默认的,但我在应用程序中添加了一个util文件夹,其中只有一个文件Helper.js。代码如下: Ext.define('Dem
我已经创建了两个实用程序类作为单例组件(助手、服务等)。
我正在使用alternateClassName为这些类提供一个较短的名称。
它工作得很完美,但在编译用于生产后停止工作 我不知道为什么,需要帮助才能让它工作 查看以下示例:
为了简单起见,我使用sencha cmd创建了一个演示应用程序。该应用程序是“演示版”。
整个应用程序都是默认的,但我在应用程序中添加了一个util文件夹,其中只有一个文件Helper.js。代码如下:
Ext.define('Demo.util.Helper', {
singleton: true,
alternateClassName: 'Helper',
test: function () {
alert('It works !');
}
});
然后,我只需要更新app.js以需要这个新文件,并在添加主视图后更新启动函数以调用test方法。下面是在app.js中使用的代码:
requires: [
'Ext.MessageBox',
'Demo.util.Helper'
],
启动功能:
launch: function () {
// Destroy the #appLoadingIndicator element
Ext.fly('appLoadingIndicator').destroy();
// Initialize the main view
Ext.Viewport.add(Ext.create('Demo.view.Main'));
Helper.test();
},
现在,如果我尝试这个示例,在加载应用程序后,会成功显示一条警报消息
但是在使用sencha cmd编译之后
sencha应用程序构建生产
我得到这个错误:
我知道问题出在备用类名上,因为如果我使用全名(而不是备用类名),它仍然有效。但是我想使用另一个类名,否则就没有任何意义了
你知道编译版有什么问题吗
蒂亚!
Milton过了一段时间,我们意识到Sencha在编译用于生产的单例类时有一个bug(也用于测试) 解决方案是在launch方法中删除singleton标志,并为所有singleton类创建应用程序变量 例如:
Demo.Helper = Ext.create('Helper');
希望这有帮助
更新
Sencha Cmd的最后一个版本充满了奇怪的bug!
在修复了这些问题之后,我发现了很多其他问题,最后,我找到了这个链接