diff options
| author | Sudhir Jonathan | 2012-11-27 00:47:37 +0530 | 
|---|---|---|
| committer | Pawel Kozlowski | 2012-12-01 18:41:59 +0100 | 
| commit | 2c405f417125c80c387a51baece8bf6e1e0c0a81 (patch) | |
| tree | 1344ded9874838a7a9db19c1950488129224f36a | |
| parent | 8991680d8ab632dda60cd70c780868c803c74509 (diff) | |
| download | angular.js-2c405f417125c80c387a51baece8bf6e1e0c0a81.tar.bz2 | |
fix($injector): provider can now be defined in the array format
`injector.instantiate` is now called for arrays too, instead of only for functions.
Closes #1452
| -rw-r--r-- | src/auto/injector.js | 2 | ||||
| -rw-r--r-- | test/auto/injectorSpec.js | 14 | 
2 files changed, 15 insertions, 1 deletions
diff --git a/src/auto/injector.js b/src/auto/injector.js index 4f37214d..bdc82da5 100644 --- a/src/auto/injector.js +++ b/src/auto/injector.js @@ -441,7 +441,7 @@ function createInjector(modulesToLoad) {    }    function provider(name, provider_) { -    if (isFunction(provider_)) { +    if (isFunction(provider_) || isArray(provider_)) {        provider_ = providerInjector.instantiate(provider_);      }      if (!provider_.$get) { diff --git a/test/auto/injectorSpec.js b/test/auto/injectorSpec.js index d2a63789..6f84897b 100644 --- a/test/auto/injectorSpec.js +++ b/test/auto/injectorSpec.js @@ -394,6 +394,20 @@ describe('injector', function() {          }); +        it('should configure $provide using an array', function() { +          function Type(PREFIX) { +            this.prefix = PREFIX; +          }; +          Type.prototype.$get = function() { +            return this.prefix + 'def'; +          }; +          expect(createInjector([function($provide) { +            $provide.constant('PREFIX', 'abc'); +            $provide.provider('value', ['PREFIX', Type]); +          }]).get('value')).toEqual('abcdef'); +        }); + +          it('should configure a set of providers', function() {            expect(createInjector([function($provide) {              $provide.provider({value: valueFn({$get:Array})});  | 
