fix(HtmlParser): allow ng-content elements regardless the namespace
relates to #5547 Closes #5745
This commit is contained in:
		
							parent
							
								
									7c13372721
								
							
						
					
					
						commit
						080469f8e6
					
				| @ -1,5 +1,6 @@ | ||||
| import {HtmlElementAst} from './html_ast'; | ||||
| import {isBlank, isPresent} from 'angular2/src/facade/lang'; | ||||
| import {splitNsName} from './html_tags'; | ||||
| 
 | ||||
| const NG_CONTENT_SELECT_ATTR = 'select'; | ||||
| const NG_CONTENT_ELEMENT = 'ng-content'; | ||||
| @ -31,7 +32,7 @@ export function preparseElement(ast: HtmlElementAst): PreparsedElement { | ||||
|   selectAttr = normalizeNgContentSelect(selectAttr); | ||||
|   var nodeName = ast.name.toLowerCase(); | ||||
|   var type = PreparsedElementType.OTHER; | ||||
|   if (nodeName == NG_CONTENT_ELEMENT) { | ||||
|   if (splitNsName(nodeName)[1] == NG_CONTENT_ELEMENT) { | ||||
|     type = PreparsedElementType.NG_CONTENT; | ||||
|   } else if (nodeName == STYLE_ELEMENT) { | ||||
|     type = PreparsedElementType.STYLE; | ||||
|  | ||||
| @ -106,6 +106,15 @@ export function main() { | ||||
|         expect(humanizeTplAst(parsed)).toEqual([[NgContentAst]]); | ||||
|       }); | ||||
| 
 | ||||
|       it('should parse ngContent regardless the namespace', () => { | ||||
|         var parsed = parse('<svg><ng-content></ng-content></svg>', []); | ||||
|         expect(humanizeTplAst(parsed)) | ||||
|             .toEqual([ | ||||
|               [ElementAst, '@svg:svg'], | ||||
|               [NgContentAst], | ||||
|             ]); | ||||
|       }); | ||||
| 
 | ||||
|       it('should parse bound text nodes', () => { | ||||
|         expect(humanizeTplAst(parse('{{a}}', []))).toEqual([[BoundTextAst, '{{ a }}']]); | ||||
|       }); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user