From e1254b266dfa2d4e3756e4317152dbdbcabe44be Mon Sep 17 00:00:00 2001 From: Tobias Bosch Date: Tue, 12 Nov 2013 15:53:06 -0800 Subject: fix($compile): correctly handle interpolated style in replace templates A directive with a template with `replace: true` and an interpolated style at the root element should work correctly. Closes #4882. --- src/ng/compile.js | 1 + test/ng/compileSpec.js | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/ng/compile.js b/src/ng/compile.js index 2e3d7867..d197bbe1 100644 --- a/src/ng/compile.js +++ b/src/ng/compile.js @@ -1588,6 +1588,7 @@ function $CompileProvider($provide) { dst['class'] = (dst['class'] ? dst['class'] + ' ' : '') + value; } else if (key == 'style') { $element.attr('style', $element.attr('style') + ';' + value); + dst['style'] = (dst['style'] ? dst['style'] + ';' : '') + value; // `dst` will never contain hasOwnProperty as DOM parser won't let it. // You will get an "InvalidCharacterError: DOM Exception 5" error if you // have an attribute like "has-own-property" or "data-has-own-property", etc. diff --git a/test/ng/compileSpec.js b/test/ng/compileSpec.js index 5bdbad42..3e35fae7 100755 --- a/test/ng/compileSpec.js +++ b/test/ng/compileSpec.js @@ -504,6 +504,14 @@ describe('$compile', function() { expect(element).toBe(attr.$$element); } })); + directive('replaceWithInterpolatedStyle', valueFn({ + replace: true, + template: '