fix(projection): allow to project to a non text node
We already had a test for this, but too low level that it did not catch this null value in `hasNativeShadowRoot` Fixes #3230 Closes #3241
This commit is contained in:
		
							parent
							
								
									5ec67ee2a7
								
							
						
					
					
						commit
						b44b06c2c9
					
				| @ -1,5 +1,6 @@ | ||||
| import {AST} from 'angular2/change_detection'; | ||||
| import {List, ListWrapper} from 'angular2/src/facade/collection'; | ||||
| import {isPresent} from 'angular2/src/facade/lang'; | ||||
| 
 | ||||
| export class DomElementBinder { | ||||
|   textNodeIndices: List<number>; | ||||
| @ -23,7 +24,7 @@ export class DomElementBinder { | ||||
|     this.eventLocals = eventLocals; | ||||
|     this.localEvents = localEvents; | ||||
|     this.globalEvents = globalEvents; | ||||
|     this.hasNativeShadowRoot = hasNativeShadowRoot; | ||||
|     this.hasNativeShadowRoot = isPresent(hasNativeShadowRoot) ? hasNativeShadowRoot : false; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -339,7 +339,7 @@ function updateElementBinderTextNodeIndices(elementBinder: DomElementBinder, | ||||
|       eventLocals: null, | ||||
|       localEvents: [], | ||||
|       globalEvents: [], | ||||
|       hasNativeShadowRoot: null | ||||
|       hasNativeShadowRoot: false | ||||
|     }); | ||||
|   } else { | ||||
|     result = new DomElementBinder({ | ||||
|  | ||||
| @ -73,6 +73,25 @@ export function main() { | ||||
|              }); | ||||
|        })); | ||||
| 
 | ||||
|     it('should support projecting text interpolation to a non bound element', | ||||
|        inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { | ||||
|          tcb.overrideView( | ||||
|                 Simple, | ||||
|                 new viewAnn.View( | ||||
|                     {template: 'SIMPLE(<div><ng-content></ng-content></div>)', directives: []})) | ||||
|              .overrideView( | ||||
|                  MainComp, | ||||
|                  new viewAnn.View({template: '<simple>{{text}}</simple>', directives: [Simple]})) | ||||
|              .createAsync(MainComp) | ||||
|              .then((main) => { | ||||
| 
 | ||||
|                main.componentInstance.text = 'A'; | ||||
|                main.detectChanges(); | ||||
|                expect(main.nativeElement).toHaveText('SIMPLE(A)'); | ||||
|                async.done(); | ||||
|              }); | ||||
|        })); | ||||
| 
 | ||||
|     it('should not show the light dom even if there is no content tag', | ||||
|        inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { | ||||
|          tcb.overrideView(MainComp, | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user