fix(ivy): support ViewContainerRef ng-container children (#26646)

Issue found while running NgPlural tests with ivy

PR Close #26646
This commit is contained in:
Pawel Kozlowski
2018-10-22 14:10:42 +02:00
committed by Alex Rickabaugh
parent 34c6ce6b08
commit ff767dd153
2 changed files with 117 additions and 2 deletions

View File

@ -502,6 +502,12 @@ function executePipeOnDestroys(viewData: LViewData): void {
export function getRenderParent(tNode: TNode, currentView: LViewData): RElement|null {
if (canInsertNativeNode(tNode, currentView)) {
const hostTNode = currentView[HOST_NODE];
const tNodeParent = tNode.parent;
if (tNodeParent != null && tNodeParent.type === TNodeType.ElementContainer) {
tNode = getHighestElementContainer(tNodeParent);
}
return tNode.parent == null && hostTNode !.type === TNodeType.View ?
getContainerRenderParent(hostTNode as TViewNode, currentView) :
getParentNative(tNode, currentView) as RElement;
@ -626,8 +632,7 @@ export function appendChild(
renderer, lContainer[RENDER_PARENT] !, childEl,
getBeforeNodeForView(index, views, lContainer[NATIVE]));
} else if (parentTNode.type === TNodeType.ElementContainer) {
let elementContainer = getHighestElementContainer(childTNode);
let renderParent: RElement = getRenderParent(elementContainer, currentView) !;
const renderParent: RElement = getRenderParent(childTNode, currentView) !;
nativeInsertBefore(renderer, renderParent, childEl, parentEl);
} else {
isProceduralRenderer(renderer) ? renderer.appendChild(parentEl !as RElement, childEl) :