EXTJS - Comunidade brasileira da biblioteca EXTJS
Setembro 09, 2010, 21:20:12 *
Bem-vindo, Visitante. Por favor faça o Login ou Registro.
Perdeu o seu email de activação?

Login com nome de usuário, senha e duração da sessão
Notícias: Confira também conteúdo Ext JS no novo site rkn.com.br
 
   Home   Ajuda Pesquisa Login Registrar  
Faça uma doação e contribua para a
evolução desta comunidade. Saiba mais...
Páginas: 1 [2]
  Imprimir  
Autor Tópico: Como carregar código javascript Ext dinâmicamente  (Lida 2379 vezes)
0 Membros e 1 Visitante estão vendo este tópico.
aureliosaraiva
Iniciante
*

Karma: +0/-0
Offline Offline

Mensagens: 106


Ver Perfil Email
« Responder #15 : Janeiro 26, 2010, 16:26:42 »

Ola galera,

segue abaixo uma nova funcionalidade que adicionei a Ext.require.

Segue abaixo as mudanças.


Citar
if (obj && obj.prototype && obj.prototype.$depends) {
                  // @TODO aureliosaraiva@gmail.com
                  // verifica se tem alguma regra para carregar as
                  // dependencias
                  if (typeof(obj.prototype.$depends) == 'function') {
                     var $depends = obj.prototype.$depends();
                  } else {
                     var $depends = obj.prototype.$depends;
                  }


                  // if(window[module] && window[module].prototype &&
                  // window[module].prototype.$depends)

                  // fim

                  var dependents = [].concat($depends);

                  // remove dos dependentes os ja carregados
                  for (var i = dependents.length - 1; i != -1; i--) {
                     if (modulesLoaded[dependents] == true)
                        dependents.pop();
                  }

                  // se existe ainda dependentes para carregar
                  if (dependents.length) {
                     this.totalToLoad++;
                     Ext.require($depends, this.moduleCallback, this);
                  }
               }

Código:

ProdutoCadastro = Ext.extend({

    $depends: function(){
       var m = ['CategoriaLista']
       if(test==true){
           m.push('FabricanteLista');
       }
       return m;
}

    //..demais atributos, métodos, etc...

});


Espero que essa necessidade que eu tive seja util a alguem!




Registrado
evertonce
Iniciante
*

Karma: +0/-0
Offline Offline

Mensagens: 9


Ver Perfil Email
« Responder #16 : Julho 21, 2010, 11:37:30 »

Fantástico Bruno belo trabalho parabéns.
Registrado
tupetao_89
Iniciante
*

Karma: +0/-0
Offline Offline

Mensagens: 21


Ver Perfil
« Responder #17 : Julho 22, 2010, 09:52:49 »

tem como ja instanciar dinamicamente tb?Hein???

pq no caso :

Código:
Ext.require('Usuario/UsuarioCadastro',function()
{

          //Cria instancia da classe
          new UsuarioCadastro().show();
         

});


agente tem q dar um new com o nome da classe...

tem como ser mais generico, e no caso de uma "window", por exemplo, dar um "show" sem saber precisa por o nome da classe...

se ao carregar o script, retornasse uma instancia creio q daria p fazer isso...

essa classe faz isso???

Registrado
Rodrigo, Kptão Nascimento
Administrator
Avançado
********

Karma: +54/-12
Online Online

Sexo: Masculino
Mensagens: 1981


rodrigoknascimento@hotmail.com
Ver Perfil WWW
« Responder #18 : Julho 22, 2010, 14:10:19 »

n sei se tem, mas uma saída pratica seria

Código:
var module = 'Usuario/UsuarioCadastro';
Ext.require(module,function()
{
          //Cria instancia da classe
          new window[module.split('/').pop()]().show()
});
Registrado

Sempre que um tópico for resolvido clique no botão MARCAR COMO RESOLVIDO localizado ao lado do botão RESPONDER.

http://blog.rkn.com.br
http://twitter.com/blogrkn

Atualize seu navegador
http://imasters.uol.com.br/crossbrowser
tupetao_89
Iniciante
*

Karma: +0/-0
Offline Offline

Mensagens: 21


Ver Perfil
« Responder #19 : Julho 22, 2010, 15:26:31 »

vlw Rodrido, vou testar aki....

Registrado
aureliosaraiva
Iniciante
*

Karma: +0/-0
Offline Offline

Mensagens: 106


Ver Perfil Email
« Responder #20 : Julho 26, 2010, 10:12:06 »

Galera fiz uma mudança que me favorece em organização.


Código:

 var script = document.createElement("script")
    script.setAttribute('type','text/javascript');

[color=red][b] var modulePath = module.replace(/\./g, '/');
       script.setAttribute('src', Ext.require.moduleUrl + modulePath + '.js');[/b][/color]


Então eu posso ter a seguinte estrutura de diretorio.

Ext /
   ux /
       form /
          TextMask.js
       grid /
          OutroComponente.js


e dentro eu tenho um classe

Ext.ux.form.TextMask

Ext.ux.form.OutroComponente

Quando preciso carregar algo faço isso

Ext.require(['Ext.ux.form.TextMask']...)

Ele busca esse arquivo para min.
O bom é que fica tudo organizado.
Registrado
Páginas: 1 [2]
  Imprimir  
 
Ir para:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC XHTML 1.0 Válido! CSS Válido!
Página criada em 0.151 segundos com 21 procedimentos.