diff options
| author | Pete Bacon Darwin | 2013-01-09 22:23:50 +0000 |
|---|---|---|
| committer | Igor Minar | 2013-01-17 00:28:56 -0800 |
| commit | 0d8e19c26f941004b0472fe56b2601dc86887668 (patch) | |
| tree | c0288bc1f9e187f7611ec3f537f20b93d1f4d9a8 | |
| parent | ed2fd2d0caad4e4b45f79bb39fd2a8b03fea8faa (diff) | |
| download | angular.js-0d8e19c26f941004b0472fe56b2601dc86887668.tar.bz2 | |
fix($compile): do not wrap empty root text nodes in spans
Closes #1059
| -rw-r--r-- | src/ng/compile.js | 2 | ||||
| -rw-r--r-- | test/ng/compileSpec.js | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/ng/compile.js b/src/ng/compile.js index 08c161f7..7ec8c3ce 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 3a0e0289..a002171b 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( |
