aboutsummaryrefslogtreecommitdiffstats
path: root/src/ng/compile.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/ng/compile.js')
-rw-r--r--src/ng/compile.js13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/ng/compile.js b/src/ng/compile.js
index 5fefdaaa..7513fc7e 100644
--- a/src/ng/compile.js
+++ b/src/ng/compile.js
@@ -1303,13 +1303,17 @@ function $CompileProvider($provide) {
if (pre) {
if (attrStart) pre = groupElementsLinkFnWrapper(pre, attrStart, attrEnd);
pre.require = directive.require;
- if (newIsolateScopeDirective === directive || directive.$$isolateScope) pre.isolateScope = true;
+ if (newIsolateScopeDirective === directive || directive.$$isolateScope) {
+ pre = cloneAndAnnotateFn(pre, {isolateScope: true});
+ }
preLinkFns.push(pre);
}
if (post) {
if (attrStart) post = groupElementsLinkFnWrapper(post, attrStart, attrEnd);
post.require = directive.require;
- if (newIsolateScopeDirective === directive || directive.$$isolateScope) post.isolateScope = true;
+ if (newIsolateScopeDirective === directive || directive.$$isolateScope) {
+ post = cloneAndAnnotateFn(post, {isolateScope: true});
+ }
postLinkFns.push(post);
}
}
@@ -1830,6 +1834,11 @@ function $CompileProvider($provide) {
elementsToRemove[0] = newNode;
elementsToRemove.length = 1;
}
+
+
+ function cloneAndAnnotateFn(fn, annotation) {
+ return extend(function() { return fn.apply(null, arguments); }, fn, annotation);
+ }
}];
}