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…
Reference in New Issue