Foro

No me entra en la cabeza, dividir la aplicacion en JS :?

0
Hola! pues nada que para mi ExtJs de pelos y todo maravilloso aprendiendo de los tutoriales, he logrado meterlo todo en Lotus Domino y desplegar y salvar datos <!-- s8-) --><!-- s8-) --> .. ahora.. siempre y cuando use un solo archivo .JS. pero apenas trato de dividir la aplicacion no logro que los elementos se comuniquen. (como ejemplo: el archivo "main.js" - que es donde esta el onReady - llama a la ventana A (cuyo codigo está, digamos en un archivo "a.js") y a la ventana B (cuyo codigo está, tambien digamos en otro archivo llamado "b.js") y se abren y todo, pero la ventana "A" no puede comunicarse con la ventana "B" o con "main.js" <!-- s:? --><!-- s:? --> Estoy seguro que es algo sencillo, podria alguien ayudarme mostrandome un ejemplo bien sencillo de como hacer esto? tres archivitos y como se comunican entre los elementos? con eso me ayudarian muchisimo! esta onda ya me esta frustrando.. <!-- s:cry: --><!-- s:cry: -->
0
primero que nada revisa el orden en el que estas incluyendo los archivos JS, recuerda que si ventana A usa a ventana B, primero incuye el JS de ventana B y luego el de ventana A. Ahora, supon que en B.js tienes algo así:
Ext.ns("com.myapp.alumnos");
com.myapp.alumnos.FormularioAlta = function(options){
    var txt = new Ext.form.TextField();
    var form = new Ext.form.FormPanel(.....);
    var win = new Ext.Windows(...);
    return {
          showForm: function(){
              form.show();
          },
          setAlumno: function(alumno){
              //aqui accedes a tus componentes internos
          },
          getAlumno: function(){
               return form.getForm().getValues();
          }
    }
}
Ahora supon que en A.js tienes algo así:
Ext.ns("com.myapp.alumnos");
com.myapp.alumnos.Lista = function(options){
    var form = new com.myapp.alumnos.FormularioAlta();
    var grid = new Ext.grid.GridPanel(....);
    grid.on('rowclick',form.showForm);
    return {
          loadData: function(){
               grid.getStore().load();
          }
    }
}
Checa como es que estoy accediendo al código que hay en B.js desde A.js, lo que hago es crear instancias de mis módulos, y los puedo manipular mediante los métodos que haga, piensa en objetos, no andes creando solamente ventanas o componentes en el globalscope ya que eso no es nada bueno. saludos
0
Muchas gracias Men! se ve mas claro ahora! tanto programar en Lotus Domino me hace daño... <!-- s:lol: --><!-- s:lol: --> Voy a hacer mis pruebas este fin y ya te dire como me fue <!-- s;-) --><!-- s;-) --> Grax again!
0
STOCK podrias por favor darle una mirada a mi post. Gracias. [url]http://foro.quizzpot.com/viewtopic.php?f=6&t=308[/url]

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.