aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPete Bacon Darwin2013-01-09 22:23:50 +0000
committerIgor Minar2013-01-17 00:28:44 -0800
commit49f9e4cef13e68ff85b3c160cf8fac6e7cd042a3 (patch)
tree64e5e434ff29aaa6366ca1e7c0ddcda7f7367113
parent7e746015ea7dec3e9eb81bc4678fa9b6a83bc47c (diff)
downloadangular.js-49f9e4cef13e68ff85b3c160cf8fac6e7cd042a3.tar.bz2
fix($compile): do not wrap empty root text nodes in spans
Closes #1059
-rw-r--r--src/ng/compile.js2
-rw-r--r--test/ng/compileSpec.js13
2 files changed, 14 insertions, 1 deletions
diff --git a/src/ng/compile.js b/src/ng/compile.js
index 29d66da5..84d53e6d 100644
--- a/src/ng/compile.js
+++ b/src/ng/compile.js
@@ -318,7 +318,7 @@ function $CompileProvider($provide) {
// We can not compile top level text elements since text nodes can be merged and we will
// not be able to attach scope data to them, so we will wrap them in <span>
forEach($compileNodes, function(node, index){
- if (node.nodeType == 3 /* text node */) {
+ if (node.nodeType == 3 /* text node */ && node.nodeValue.match(/\S+/) /* non-empty */ ) {
$compileNodes[index] = jqLite(node).wrap('<span></span>').parent()[0];
}
});
diff --git a/test/ng/compileSpec.js b/test/ng/compileSpec.js
index 927a4ef7..363b4329 100644
--- a/test/ng/compileSpec.js
+++ b/test/ng/compileSpec.js
@@ -125,6 +125,19 @@ describe('$compile', function() {
expect(element.find('span').text()).toEqual('A<a>B</a>C');
}));
+
+ it('should not wrap root whitespace text nodes in spans', function() {
+ element = jqLite(
+ '<div> <div>A</div>\n '+ // The spaces and newlines here should not get wrapped
+ '<div>B</div>C\t\n '+ // The "C", tabs and spaces here will be wrapped
+ '</div>');
+ $compile(element.contents())($rootScope);
+ var spans = element.find('span');
+ expect(spans.length).toEqual(1);
+ expect(spans.text().indexOf('C')).toEqual(0);
+ });
+
+
describe('multiple directives per element', function() {
it('should allow multiple directives per element', inject(function($compile, $rootScope, log){
element = $compile(