From bb8448c011127306df08c7479b66e5afe7a0fa94 Mon Sep 17 00:00:00 2001 From: Pete Bacon Darwin Date: Mon, 19 Nov 2012 10:01:53 +0000 Subject: [PATCH] fix(compile): Initialize interpolated attributes before directive linking --- src/ng/compile.js | 2 +- test/ng/compileSpec.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ng/compile.js b/src/ng/compile.js index 32c1d1cacd4c..b7eb759b3de2 100644 --- a/src/ng/compile.js +++ b/src/ng/compile.js @@ -1037,7 +1037,7 @@ function $CompileProvider($provide) { interpolateFn = $interpolate(attr[name], true); } - attr[name] = undefined; + attr[name] = interpolateFn(scope); ($$observers[name] || ($$observers[name] = [])).$$inter = true; (attr.$$observers && attr.$$observers[name].$$scope || scope). $watch(interpolateFn, function interpolateFnWatchAction(value) { diff --git a/test/ng/compileSpec.js b/test/ng/compileSpec.js index 3b69f60925b9..da8f2f8c1cd9 100644 --- a/test/ng/compileSpec.js +++ b/test/ng/compileSpec.js @@ -1381,9 +1381,10 @@ describe('$compile', function() { })); - it('should set interpolated attrs to undefined', inject(function($rootScope, $compile) { + it('should set interpolated attrs to initial interpolation value', inject(function($rootScope, $compile) { + $rootScope.whatever = 'test value'; $compile('
')($rootScope); - expect(directiveAttrs.someAttr).toBeUndefined(); + expect(directiveAttrs.someAttr).toBe($rootScope.whatever); }));