aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEnrique Paredes2013-02-04 20:38:52 +0100
committerIgor Minar2013-02-07 02:49:12 -0800
commit92ca7efaa4bc4f37da3008b234e19343a1fa4207 (patch)
treecfdca7dfbfbafc1574fb42567c31dd83f41fe142
parent7090924515214752b919b0c5630b3ea5e7c77223 (diff)
downloadangular.js-92ca7efaa4bc4f37da3008b234e19343a1fa4207.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');
+ });
+ });
});