diff options
| author | Misko Hevery | 2011-11-08 17:40:03 -0800 |
|---|---|---|
| committer | Misko Hevery | 2011-11-14 20:31:15 -0800 |
| commit | 085e3c611fd0cd48757702c50c67b551a00a0d38 (patch) | |
| tree | 879f19d0a829c828c3636b38c8c422f732a829a9 /src/Injector.js | |
| parent | 4b35a59c6afd5093ed5ce7d68b75ccadd4c53696 (diff) | |
| download | angular.js-085e3c611fd0cd48757702c50c67b551a00a0d38.tar.bz2 | |
new(directive): added ng:module directive for loading modules
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 |
