aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPete Bacon Darwin2013-01-09 22:23:50 +0000
committerIgor Minar2013-01-17 00:28:56 -0800
commit0d8e19c26f941004b0472fe56b2601dc86887668 (patch)
treec0288bc1f9e187f7611ec3f537f20b93d1f4d9a8
parented2fd2d0caad4e4b45f79bb39fd2a8b03fea8faa (diff)
downloadangular.js-0d8e19c26f941004b0472fe56b2601dc86887668.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 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(