|
9 | 9 |
|
10 | 10 | function factory(angular, undefined) {
|
11 | 11 |
|
12 |
| - var VERSION = '1.2.1'; |
| 12 | + var VERSION = '1.3.0'; |
13 | 13 |
|
14 | 14 | // Support require.js, sea.js, system.js
|
15 | 15 | var amdRequire = (function() {
|
|
104 | 104 | */
|
105 | 105 | configure: function(app) {
|
106 | 106 |
|
107 |
| - app.provider('$asyncLoader', [ |
108 |
| - '$controllerProvider', |
109 |
| - '$compileProvider', |
110 |
| - '$provide', |
111 |
| - '$filterProvider', |
112 |
| - function($controllerProvider, |
113 |
| - $compileProvider, |
114 |
| - $provide, |
115 |
| - $filterProvider) { |
| 107 | + app.provider('ngProviders', ['$controllerProvider', '$compileProvider', '$filterProvider', '$provide', |
| 108 | + function($controllerProvider, $compileProvider, $filterProvider, $provide) { |
116 | 109 | this.$get = function() {
|
117 | 110 | return {
|
118 | 111 | $controllerProvider: $controllerProvider,
|
119 | 112 | $compileProvider: $compileProvider,
|
120 |
| - $provide: $provide, |
121 |
| - $filterProvider: $filterProvider |
| 113 | + $filterProvider: $filterProvider, |
| 114 | + $provide: $provide |
122 | 115 | };
|
123 | 116 | };
|
124 | 117 | }
|
125 | 118 | ]);
|
126 | 119 |
|
127 |
| - app.run(['$asyncLoader', function($asyncLoader) { |
128 |
| - var $controllerProvider = $asyncLoader.$controllerProvider; |
129 |
| - var $compileProvider = $asyncLoader.$compileProvider; |
130 |
| - var $provide = $asyncLoader.$provide; |
131 |
| - var $filterProvider = $asyncLoader.$filterProvider; |
| 120 | + app.run(['ngProviders', '$injector', function(ngProviders, $injector) { |
| 121 | + var $controllerProvider = ngProviders.$controllerProvider; |
| 122 | + var $compileProvider = ngProviders.$compileProvider; |
| 123 | + var $filterProvider = ngProviders.$filterProvider; |
| 124 | + var $provide = ngProviders.$provide; |
| 125 | + |
| 126 | + /** |
| 127 | + * Register an angular module for dependency. |
| 128 | + * |
| 129 | + * @param {String} name - module name |
| 130 | + */ |
| 131 | + app.useModule = function (name) { |
| 132 | + var module = angular.module(name); |
| 133 | + if (module.requires) { |
| 134 | + for (var i = 0; i < module.requires.length; i++) { |
| 135 | + app.addModule(module.requires[i]); |
| 136 | + } |
| 137 | + } |
| 138 | + angular.forEach(module._invokeQueue, function(invokeArgs) { |
| 139 | + var provider = ngProviders[invokeArgs[0]]; |
| 140 | + provider[invokeArgs[1]].apply(provider, invokeArgs[2]); |
| 141 | + }); |
| 142 | + angular.forEach(module._configBlocks, function(fn) { |
| 143 | + $injector.invoke(fn); |
| 144 | + }); |
| 145 | + angular.forEach(module._runBlocks, function(fn) { |
| 146 | + $injector.invoke(fn); |
| 147 | + }); |
| 148 | + |
| 149 | + return app; |
| 150 | + }; |
132 | 151 |
|
133 | 152 | app.value = function(name, value) {
|
134 | 153 | $provide.value(name, value);
|
|
174 | 193 | $provide.provider(name, service);
|
175 | 194 | return app;
|
176 | 195 | };
|
| 196 | + |
| 197 | + /** |
| 198 | + * Get angular injector object by name in module scope. |
| 199 | + * |
| 200 | + * @param {String} name |
| 201 | + * @returns {*} the injected object |
| 202 | + */ |
| 203 | + app.get = function(name) { |
| 204 | + return $injector.get(name); |
| 205 | + }; |
| 206 | + |
177 | 207 | }]);
|
178 | 208 |
|
179 | 209 | // rewrite $routeProvider.when
|
|
194 | 224 | };
|
195 | 225 | }]);
|
196 | 226 | }
|
197 |
| - |
198 |
| - |
199 |
| - var injector; |
200 |
| - |
201 |
| - /** |
202 |
| - * Get angular injector object by name in module scope. |
203 |
| - * |
204 |
| - * @param {String} name |
205 |
| - * @returns {*} the injected object |
206 |
| - */ |
207 |
| - app.get = function(name) { |
208 |
| - if (injector === undefined) { |
209 |
| - var elements = [app.element, document, 'html', 'body']; |
210 |
| - for (var i = 0; i < elements.length; i++) { |
211 |
| - injector = angular.element(elements[i]).injector(); |
212 |
| - if (injector !== undefined) { |
213 |
| - break; |
214 |
| - } |
215 |
| - } |
216 |
| - } |
217 |
| - return injector.get(name); |
218 |
| - }; |
219 |
| - |
220 | 227 | }
|
221 | 228 | };
|
222 | 229 | }
|
|
0 commit comments