fix(ivy): allow queries for ng-container without read option (#25617)

PR Close #25617
This commit is contained in:
Pawel Kozlowski
2018-08-22 17:30:27 +02:00
committed by Matias Niemelä
parent b00038c847
commit 8fa099158e
3 changed files with 45 additions and 6 deletions

View File

@ -557,17 +557,21 @@ export const QUERY_READ_ELEMENT_REF =
export const QUERY_READ_FROM_NODE =
(new ReadFromInjectorFn<any>((injector: LInjector, node: LNode, directiveIdx: number) => {
ngDevMode && assertNodeOfPossibleTypes(node, TNodeType.Container, TNodeType.Element);
ngDevMode && assertNodeOfPossibleTypes(
node, TNodeType.Container, TNodeType.Element, TNodeType.ElementContainer);
if (directiveIdx > -1) {
return node.view[DIRECTIVES] ![directiveIdx];
}
if (node.tNode.type === TNodeType.Element) {
if (node.tNode.type === TNodeType.Element || node.tNode.type === TNodeType.ElementContainer) {
return getOrCreateElementRef(injector);
}
if (node.tNode.type === TNodeType.Container) {
return getOrCreateTemplateRef(injector);
}
throw new Error('fail');
if (ngDevMode) {
// should never happen
throw new Error(`Unexpected node type: ${node.tNode.type}`);
}
}) as any as QueryReadType<any>);
/** A ref to a node's native element. */