mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-17 07:40:22 +00:00
parent
7e746015ea
commit
49f9e4cef1
2 changed files with 14 additions and 1 deletions
|
|
@ -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];
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
Loading…
Reference in a new issue