aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/auto/injector.js2
-rw-r--r--test/auto/injectorSpec.js14
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})});