Digamos que tenemos /app/scripts/methodsModule.js módulo que devuelve unos métodos:
define({
someMethod: function() {
// do stuff
},
anotherMethod: function() {
// do some more stuff
}
});
En nuestros /app/scripts/main.js archivo de datos principal que tenemos:
require(['methodsModule'], function(methods) {
methods.someMethod() // call someMethod
methods.anotherMethod() // call anotherMethod
})
Una vez RequireJS carga hasta nuestros datos-principal, podemos tener acceso a todos los módulos que ya han sido cargados por RequireJS desde la línea de comandos de la consola JavaScript, así:
>> methods = require('methodsModule'); // requireJS has module methodsModule stored
>> methods.someMethod() // call someMethod
>> methods.anotherMethod() // call anotherMethod
Si un módulo no se ha cargado por una llamada a require() o() define, tenemos que pasar nuestra propia llamada de retorno para la función de requerir a llamar después de que el módulo ha sido cargado:
>> myCB = function(methods) { methods.someMethod() }
>> require(['methodsModule'], myCB)
lo contrario , requireJS arroja un error que indica que el módulo aún no se ha cargado ..
¿Funciona esto con los scripts "optimizados" de requireJS? Tal vez estoy haciendo algo mal aquí, pero no pareció funcionar para mí. – Stephen
Aún vigente a partir del 20/05/2015. Al convertir un proyecto "primitivo" a AMD, necesitaba asegurarme de que todo estaba funcionando. Sin embargo, no pude localizar a dónde iba el objeto del módulo devuelto después de definir ejecutado. Gran explicación –