Wymaganie dynamiczne w RequireJS, błąd „Nazwa modułu nie została jeszcze załadowana dla kontekstu”?
Czy istnieje sposób na zdefiniowanie modułu, który „dynamicznie” ładuje inne moduły w RequireJS? Jeśli tak, to w jaki sposób optymalizator (r.js) rozumie, jak / kiedy moduł musi być dołączony?
Na przykład niechdynModules
moduł definiujący pary nazwa / ścieżka:
define([], function () {
return ['moduleA', 'moduleB']; // Array of module names
});
Inny moduł będzie ładował moduły dynamicznie, w oparciu o tablicę. To będzienie działa:
define(['dyn_modules'], function (dynModules) {
for(name in dynModules) {
var module = require(path); // Call RequireJS require
}
// ...
});
... daje mi:
Uncaught Error: Nazwa modułu „moduleA” nie została jeszcze załadowana dla kontekstu: _. Użyj require ([])http://requirejs.org/docs/errors.html#notloaded
mogęrozwiązać błąd, ale nie jest już „dynamiczny”:
define(['dyn_modules', 'moduleA', 'moduleB'], function (dynModules) {
for(name in dynModules) {
var module = require(path); // Call RequireJS require
}
// ...
});