aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSudhir Jonathan2012-11-27 00:47:37 +0530
committerPawel Kozlowski2012-12-01 19:09:36 +0100
commitcf89e8653cd796308d87d75fa9dd1601227fadec (patch)
treee07a35bb12921a8414e772e45961f96958a2423a
parent0c3500f532c1c2d7fb455206822c8a42561c962c (diff)
downloadangular.js-cf89e8653cd796308d87d75fa9dd1601227fadec.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.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 84b863b8..cd47daa6 100644
--- a/src/auto/injector.js
+++ b/src/auto/injector.js
@@ -440,7 +440,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 7e5c5d33..2f82d3b5 100644
--- a/test/auto/injectorSpec.js
+++ b/test/auto/injectorSpec.js
@@ -387,6 +387,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})});