diff options
| author | Misko Hevery | 2011-11-08 17:40:03 -0800 |
|---|---|---|
| committer | Misko Hevery | 2011-11-14 20:31:15 -0800 |
| commit | 085e3c611fd0cd48757702c50c67b551a00a0d38 (patch) | |
| tree | 879f19d0a829c828c3636b38c8c422f732a829a9 /src/service | |
| parent | 4b35a59c6afd5093ed5ce7d68b75ccadd4c53696 (diff) | |
| download | angular.js-085e3c611fd0cd48757702c50c67b551a00a0d38.tar.bz2 | |
new(directive): added ng:module directive for loading modules
Diffstat (limited to 'src/service')
| -rw-r--r-- | src/service/compiler.js | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/service/compiler.js b/src/service/compiler.js index 220d9c39..1bd2cbe0 100644 --- a/src/service/compiler.js +++ b/src/service/compiler.js @@ -27,7 +27,11 @@ function $CompileProvider(){ } forEach(this.linkFns, function(fn) { try { - $injector.invoke(childScope, fn, locals); + if (isArray(fn) || fn.$inject) { + $injector.invoke(childScope, fn, locals); + } else { + fn.call(childScope, element); + } } catch (e) { $exceptionHandler(e); } @@ -52,10 +56,6 @@ function $CompileProvider(){ addLinkFn:function(linkingFn) { if (linkingFn) { - //TODO(misko): temporary hack. - if (isFunction(linkingFn) && !linkingFn.$inject) { - linkingFn.$inject = ['$element']; - } this.linkFns.push(linkingFn); } }, @@ -298,7 +298,9 @@ function $CompileProvider(){ fn = directiveFns[name]; if (fn) { element.addClass('ng-directive'); - template.addLinkFn((directiveFns[name]).call(selfApi, value, element)); + template.addLinkFn((isArray(fn) || fn.$inject) + ? $injector.invoke(selfApi, fn, {$value:value, $element: element}) + : fn.call(selfApi, value, element)); } }); } |
