在创建应用程序和要求之前启动代码

时间:2013-11-05 14:30:06

标签: extjs launch onbeforeload

我对正确实现代码的最佳方法有疑问。

我在app.js中有这个

/*** EXT LOADER ENABLE & PATH                       ***/
Ext.Loader.setConfig(
{
    enabled             : true,
    application         : 'MyApp'
});

Ext.log('--- APPLICATION --- Loading Elasticsearch configuration');
Ext.define('MyApp.configuration.elastic',
{
    singleton   : true,
    ...
    loadElasticConfiguration: function()
    {
        // ExtDirect or ajax call in order to set configuration
    }
});
MyApp.configuration.elastic.loadElasticConfiguration();

Ext.onReady(function()
{});

Ext.create('MyApp.Application');

这很好但我不喜欢有很多代码是app.js. 有没有办法将“MyApp.configuration.elastic”代码“导出”到特定文件并调用它。我已经尝试通过Ext.require,但其他需要此配置的文件在...之前加载。

如果有人有线索。

祝你有个美好的一天!

1 个答案:

答案 0 :(得分:0)

如果您想使用Ext.require,则需要在Ext.onReady听众中创建您的应用:

Ext.require('MyApp.configuration.elastic');

Ext.onReady(function(){
    Ext.create('MyApp.Application');
});

或者,这应该也可以,因为它会使您的应用程序的主类需要配置类:

Ext.define('MyApp.Application', {
    requires: ['MyApp.configuration.elastic'],
    // ...
});