aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEnrique Paredes2013-02-04 20:38:52 +0100
committerIgor Minar2013-02-07 02:49:18 -0800
commit934204ec18898602dda329e5fd5d43a25c4bad14 (patch)
tree8d10a684fc97db20dda3fb433fa26f9040783189
parent7cb8f8fb4498aa5d8b04310cd4580997e65a7e86 (diff)
downloadangular.js-934204ec18898602dda329e5fd5d43a25c4bad14.tar.bz2
fix($compile): rename $compileNote to compileNode
Directives was observing different instances of Attributes than the one that interpolation was registered with because we failed to realize that the compile node and link node were the same (one of them was a wrapper rather than raw node) Closes #1941
-rw-r--r--src/ng/compile.js2
-rw-r--r--test/ng/compileSpec.js19
2 files changed, 20 insertions, 1 deletions
diff --git a/src/ng/compile.js b/src/ng/compile.js
index 13f8ae7e..18adc2c9 100644
--- a/src/ng/compile.js
+++ b/src/ng/compile.js
@@ -938,7 +938,7 @@ function $CompileProvider($provide) {
}
directives.unshift(derivedSyncDirective);
- afterTemplateNodeLinkFn = applyDirectivesToNode(directives, $compileNode, tAttrs, childTranscludeFn);
+ afterTemplateNodeLinkFn = applyDirectivesToNode(directives, compileNode, tAttrs, childTranscludeFn);
afterTemplateChildLinkFn = compileNodes($compileNode.contents(), childTranscludeFn);
diff --git a/test/ng/compileSpec.js b/test/ng/compileSpec.js
index b4ec0292..a7707cf9 100644
--- a/test/ng/compileSpec.js
+++ b/test/ng/compileSpec.js
@@ -1538,6 +1538,25 @@ describe('$compile', function() {
expect(element.text()).toEqual('WORKS');
});
});
+
+ it('should support $observe inside link function on directive object', function() {
+ module(function() {
+ directive('testLink', valueFn({
+ templateUrl: 'test-link.html',
+ link: function(scope, element, attrs) {
+ attrs.$observe( 'testLink', function ( val ) {
+ scope.testAttr = val;
+ });
+ }
+ }));
+ });
+ inject(function($compile, $rootScope, $templateCache) {
+ $templateCache.put('test-link.html', '{{testAttr}}' );
+ element = $compile('<div test-link="{{1+2}}"></div>')($rootScope);
+ $rootScope.$apply();
+ expect(element.text()).toBe('3');
+ });
+ });
});