Как сделать Ext.Require, когда функция init создает область просмотра? - PullRequest
3 голосов
/ 20 июня 2011

Я пытаюсь «потребовать» некоторый код для загрузчика, но моя текущая функция onready доставляет мне горе с требованием (он жалуется на то, что область просмотра еще не создана). Поскольку при назначении я присваиваю контент области просмотра, мне действительно не нужно заполнять контент (если только я не создаю область просмотра, а затем не назначаю для нее материал, кроме как).

Как, черт возьми, мне Ext.require [] с такой функцией? (или как я могу реструктурировать эту функцию таким образом, чтобы она выполнялась таким же образом, позволяя мне запускать Ext.Require для массива?)

Host=function(){
return{
    centerPanelId: 'mainLayoutCenter',
    init: function(){
        //Enable the loader for dynamic loading of js, only dev pls
        Ext.Loader.setConfig({enabled:true});
        Ext.QuickTips.init(); //ext needs this

        Ext.Loader.setPath("bleh","js/bleh"); //Project paths for the loaders

        if(!window.User){
            this.initialContent = Ext.create('bleh.Login');
        }

        //Our default View
        //this.initialContent = Ext.create('bleh.panel.Register');

        this.currentContent=this.initialContent;
        //Instantiate a viewport 
        this.viewport = Ext.create("bleh.viewport",{
            initialContent : this.initialContent
            ,host:this
        });

        //init function, to hande events for HTML elements etc
        //bleh.init();

    }

    ,setContent: function( contentPanel ){

       var center = Ext.getCmp(this.centerPanelId);

       if ( this.currentContent ) { center.remove(this.currentContent); }

       this.currentContent = contentPanel;
       center.add(this.currentContent);    
       center.doLayout(); 
       this.currentContent.show();
    }       

}               
}();            
Ext.onReady( Host.init, Host ); 

1 Ответ

3 голосов
/ 21 июня 2011

Вы должны иметь возможность просто потребовать все, что вам нужно, перед этим блоком кода.Он уже заключен в блок onReady, поэтому он не будет выполняться до тех пор, пока все зависимости не будут доступны по умолчанию, если они вам нужны.Просто добавьте это выше вашего кода:

Ext.require([
    'bleh.login',
    'bleh.viewport'
]);
...