如果在执行Ext.application()之前需要它们,我在哪里放置我的全局辅助函数?

时间:2013-04-02 10:17:58

标签: javascript sencha-touch-2

假设我们有

Ext.application({
    name: 'APP',

    //this is my global helper method.
    determineSomething: function() {
        return true;
    }
});

和一个应该访问方法的视图确定一个():

Ext.define('APP.view.Main', {
extend: 'Ext.Panel',

config: {
    myConfigValue : APP.app.determineSomething()
}});

只要您使用Sencha类加载系统,这将正常工作(因为在APP可用后,Sencha会加载带有此主视图的js文件。)。

但现在让我们说我们要缩小我们的脚本。这意味着浏览器在加载Sencha应用程序之前解析Main.js文件。但此时APP还没有准备就绪,我们无法访问它。

一种解决方案是简单地使用该方法创建一个非ext配置类/数组/,但这是一个很好的解决方案吗?什么是这个问题的干净解决方案?

1 个答案:

答案 0 :(得分:1)

我会将我的帮助函数保存到单独的Helper类中,该类在加载应用程序时实例化。例如,这是我的助手类的样子:

Ext.define('MyntraTabApp.util.Helper', {
    singleton : true,
    alternateClassName : 'Helper',
    determineSomething : function(){
        // do something
    }
});

我可以在任何我想要的地方使用它

Helper.determineSomething();