diff options
Diffstat (limited to 'src/Injector.js')
| -rw-r--r-- | src/Injector.js | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/src/Injector.js b/src/Injector.js index eacb8699..58b30fda 100644 --- a/src/Injector.js +++ b/src/Injector.js @@ -167,24 +167,29 @@ function createInjector(modulesToLoad, moduleRegistry) { instance = new Constructor(); return invoke(instance, Type, locals) || instance; }; + injector.loadModule = loadModule; return injector; } - - forEach(modulesToLoad, function(module){ - if (isString(module)) { - if (moduleRegistry[module]) { - module = moduleRegistry[module]; + function loadModule(modulesToLoad){ + forEach(isString(modulesToLoad) ? modulesToLoad.split(',') : modulesToLoad, function(module) { + if (isString(module)) { + if (moduleRegistry[module = trim(module)]) { + module = moduleRegistry[module]; + } else { + throw Error("Module '" + module + "' is not defined!"); + } + } + if (isFunction(module) || isArray(module)) { + $injector(module); } else { - throw Error("Module '" + module + "' is not defined!"); + assertArgFn(module, 'module'); } - } - if (isFunction(module) || isArray(module)) { - $injector(module); - } else { - assertArgFn(module, 'module'); - } - }); + }); + } + + + loadModule(modulesToLoad); // instantiate $eager providers // for perf we can't do forEach |
