aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Compiler.js2
-rw-r--r--src/Injector.js5
-rw-r--r--src/directives.js1
3 files changed, 4 insertions, 4 deletions
diff --git a/src/Compiler.js b/src/Compiler.js
index 0001f8af..a355444b 100644
--- a/src/Compiler.js
+++ b/src/Compiler.js
@@ -40,8 +40,6 @@ Template.prototype = {
addLinkFn:function(linkingFn) {
if (linkingFn) {
- if (!linkingFn.$inject)
- linkingFn.$inject = [];
this.linkFns.push(linkingFn);
}
},
diff --git a/src/Injector.js b/src/Injector.js
index 912e911c..0e0fddf6 100644
--- a/src/Injector.js
+++ b/src/Injector.js
@@ -60,6 +60,7 @@ function createInjector(factoryScope, factories, instanceCache) {
if (!(value in instanceCache)) {
var factory = factories[value];
if (!factory) throw Error("Unknown provider for '"+value+"'.");
+ inferInjectionArgs(factory);
instanceCache[value] = invoke(factoryScope, factory);
}
return instanceCache[value];
@@ -67,7 +68,7 @@ function createInjector(factoryScope, factories, instanceCache) {
function invoke(self, fn, args){
args = args || [];
- var injectNames = injectionArgs(fn);
+ var injectNames = fn.$inject || [];
var i = injectNames.length;
while(i--) {
args.unshift(injector(injectNames[i]));
@@ -133,7 +134,7 @@ var FN_ARGS = /^function\s*[^\(]*\(([^\)]*)\)/m;
var FN_ARG_SPLIT = /,/;
var FN_ARG = /^\s*(.+?)\s*$/;
var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;
-function injectionArgs(fn) {
+function inferInjectionArgs(fn) {
assertArgFn(fn);
if (!fn.$inject) {
var args = fn.$inject = [];
diff --git a/src/directives.js b/src/directives.js
index 4e2b92d4..ca9fe4fc 100644
--- a/src/directives.js
+++ b/src/directives.js
@@ -174,6 +174,7 @@ angularDirective("ng:controller", function(expression){
getter(scope, expression, true) ||
getter(window, expression, true);
assertArgFn(Controller, expression);
+ inferInjectionArgs(Controller);
return Controller;
});
return noop;