Estoy tratando de hacer uso de las funciones del módulo de importación y exportación en Javascript en una aplicación Qooxdoo.
Quiero crear una instancia de "sesión" definida en mi session.js (ver contenido del archivo) a continuación, en mi aplicación principal, pero la declaración de importación:
"importar {sesión) desde 'session.js'; "
¿Necesita estar más arriba en la cadena de código que application.js? (Recibo un error que dice eso cuando intento ese enfoque). No estoy seguro de dónde más podría ir esa declaración de importación. Probé algunos de los otros archivos de proyecto .JS sin ningún éxito.
En el código de la aplicación, crearía una nueva instancia de sesión usando algo como esto:
"let mysession = nueva sesión();"
¡Esa es mi teoría de todos modos!
Todo lo que intento hacer es dividir el código en archivos .js separados, para que sea más fácil de administrar.
Los archivos "incluidos" solo se utilizarán en este proyecto. Y los estoy actualizando a medida que avanzo. Por lo tanto, no me gustaría tener que reconstruirlos por separado al compilar el archivo application.js.
Podría estar haciendo esto demasiado complicado.
He jugado un poco con una versión muy antigua de Qooxdoo hace años, pero el Qooxdoo actual es claramente muy diferente. De acuerdo con mi código anterior, parecía que era posible hacer referencia a otros archivos mediante el uso de declaraciones de Javascript como "var session = test.general.session.getInstance();". Pero esto ya no parece funcionar?
Si alguien pudiera indicarme la dirección correcta, estaría muy agradecido. He buscado en el sitio web de Qooxdoo, pero parece que no puedo encontrar nada relevante, ¡por supuesto que podría estar perdiendo lo que estoy buscando!
Gracias por adelantado.
Lisa.
Contenido muy abreviado del archivo "session.js".
qx.Class.define('session', { extend : qx.core.Object, type : 'singleton', construct: function () { this.base(arguments); this.datasetName = 'Test Dataset'; this.userFirstName = 'Dave'; this.userSurname = 'Smith'; }, members: { datasetName : null, userFirstName : null, userSurname : null, tblmdlOpenForms : null, currentOpenForm : null, currentOpenWindow : null, __OpenFormIndex : null, __menuOptionAlreadyOpen : function(option) { if (this.currentOpenForm == option) return true else return false }, } }); export {session};El sistema de dependencias qooxdoo es diferente. No es necesario incluir las clases de qooxdoo manualmente en el código fuente. Se hace automáticamente durante la compilación (descubrir dependencias, vincularlas, etc.). Si usa la versión de escritorio de qooxdoo, la importación y exportación no funcionan y simplemente no son necesarias.
Tiene un nombre de proyecto que debe usarse en el nombre de la clase. Por ejemplo, su proyecto se llama myproject e incluyó un archivo de sesión en este proyecto. En este caso, el nombre completo de la clase debe ser myproject.session.
Ahora sobre el método getInstance. El método aún existe y puede usarlo, pero solo con la clase singleton. No puedo entender correctamente lo que quieres hacer con él. Sería bueno si creas una pregunta separada al respecto.
Si desea incluir otro script (módulo o archivo que no sea qooxdoo), lea sobre esto aquí
Editado : lo que describí anteriormente sobre la versión qooxdoo 6.*. Desde la versión 7.1, puede importar y usar módulos es6 o CommonJS. Lea sobre esto aquí .