2013-04-02 2 views
0

Допустим, мы имеемГде я могу поместить свои глобальные вспомогательные функции, если они необходимы до выполнения Ext.application()?

Ext.application({ 
    name: 'APP', 

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

и вид, который должен получить доступ к методу determineSomething():

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

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

Это будет работать хорошо до тех пор, пока вы используете систему загрузки классов Сенча (потому что JS -file с этим Main-View загружается Sencha после того, как APP доступен.).

Но теперь предположим, что мы хотим минимизировать наш скрипт. Это означает, что браузер анализирует файл Main.js до загрузки приложения Sencha. Но на данный момент APP еще не готов, и мы не можем получить к нему доступ.

Одним из решений было бы просто создать класс/массив ext ext config/независимо от метода, но является ли это хорошим решением? Каким будет чистое решение этой проблемы?

ответ

1

Я бы сохранил свои вспомогательные функции в одиночном классе Helper, который создается при каждом загрузке приложения. Например, это как мой вспомогательный класс выглядеть:

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

я могу использовать его, как это там, где я хочу

Helper.determineSomething(); 
+0

Пожалуйста, проверьте это http://stackoverflow.com/questions/15343537/unable -to-access-namespace-app-variables-with-st2? answertab = active # tab-top, если вы используете глобальные переменные/функции. – ThinkFloyd

+0

Спасибо ThinkFloyd. У меня была проблема, описанная в http://stackoverflow.com/questions/15343537/unable-to-access-namespace-app-variables-with-st2?answertab=active#tab-top, и ваша почта отвечает на вопрос, как сделай это хорошо. – Philipp