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 {AST} from 'angular2/change_detection'; | ||||||
| import {List, ListWrapper} from 'angular2/src/facade/collection'; | import {List, ListWrapper} from 'angular2/src/facade/collection'; | ||||||
|  | import {isPresent} from 'angular2/src/facade/lang'; | ||||||
| 
 | 
 | ||||||
| export class DomElementBinder { | export class DomElementBinder { | ||||||
|   textNodeIndices: List<number>; |   textNodeIndices: List<number>; | ||||||
| @ -23,7 +24,7 @@ export class DomElementBinder { | |||||||
|     this.eventLocals = eventLocals; |     this.eventLocals = eventLocals; | ||||||
|     this.localEvents = localEvents; |     this.localEvents = localEvents; | ||||||
|     this.globalEvents = globalEvents; |     this.globalEvents = globalEvents; | ||||||
|     this.hasNativeShadowRoot = hasNativeShadowRoot; |     this.hasNativeShadowRoot = isPresent(hasNativeShadowRoot) ? hasNativeShadowRoot : false; | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -339,7 +339,7 @@ function updateElementBinderTextNodeIndices(elementBinder: DomElementBinder, | |||||||
|       eventLocals: null, |       eventLocals: null, | ||||||
|       localEvents: [], |       localEvents: [], | ||||||
|       globalEvents: [], |       globalEvents: [], | ||||||
|       hasNativeShadowRoot: null |       hasNativeShadowRoot: false | ||||||
|     }); |     }); | ||||||
|   } else { |   } else { | ||||||
|     result = new DomElementBinder({ |     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', |     it('should not show the light dom even if there is no content tag', | ||||||
|        inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { |        inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { | ||||||
|          tcb.overrideView(MainComp, |          tcb.overrideView(MainComp, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user