Skip to content

Commit 1f5ab96

Browse files
AndrewKushniralxhub
authored andcommitted
refactor(core): allow passing an environment injector while creating a view (#54903)
This commit updates the name of an internal function argument that represents an embedded view injector. Also it introduces a new config option that allows passing an environment injector to be used in the underlying LView. There are no changes to the behavior, just some initial cleanup for upcoming changes. PR Close #54903
1 parent 860ecce commit 1f5ab96

3 files changed

Lines changed: 12 additions & 7 deletions

File tree

packages/core/src/defer/instructions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -542,8 +542,8 @@ function applyDeferBlockState(
542542
}
543543
}
544544
const dehydratedView = findMatchingDehydratedView(lContainer, activeBlockTNode.tView!.ssrId);
545-
const embeddedLView =
546-
createAndRenderEmbeddedLView(hostLView, activeBlockTNode, null, {dehydratedView, injector});
545+
const embeddedLView = createAndRenderEmbeddedLView(
546+
hostLView, activeBlockTNode, null, {dehydratedView, embeddedViewInjector: injector});
547547
addLViewToLContainer(
548548
lContainer, embeddedLView, viewIndex, shouldAddViewToDom(activeBlockTNode, dehydratedView));
549549
markViewDirty(embeddedLView);

packages/core/src/linker/template_ref.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,8 @@ const R3TemplateRef = class TemplateRef<T> extends ViewEngineTemplateRef<T> {
120120
context: T, injector?: Injector,
121121
dehydratedView?: DehydratedContainerView): EmbeddedViewRef<T> {
122122
const embeddedLView = createAndRenderEmbeddedLView(
123-
this._declarationLView, this._declarationTContainer, context, {injector, dehydratedView});
123+
this._declarationLView, this._declarationTContainer, context,
124+
{embeddedViewInjector: injector, dehydratedView});
124125
return new R3_ViewRef<T>(embeddedLView);
125126
}
126127
};

packages/core/src/render3/view_manipulation.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,11 @@ import {DECLARATION_LCONTAINER, FLAGS, HYDRATION, LView, LViewFlags, QUERIES, RE
2323
import {addViewToDOM, destroyLView, detachView, getBeforeNodeForView, insertView, nativeParentNode} from './node_manipulation';
2424

2525
export function createAndRenderEmbeddedLView<T>(
26-
declarationLView: LView<unknown>, templateTNode: TNode, context: T,
27-
options?: {injector?: Injector, dehydratedView?: DehydratedContainerView|null}): LView<T> {
26+
declarationLView: LView<unknown>, templateTNode: TNode, context: T, options?: {
27+
injector?: Injector,
28+
embeddedViewInjector?: Injector,
29+
dehydratedView?: DehydratedContainerView|null
30+
}): LView<T> {
2831
const prevConsumer = setActiveConsumer(null);
2932
try {
3033
const embeddedTView = templateTNode.tView!;
@@ -35,8 +38,9 @@ export function createAndRenderEmbeddedLView<T>(
3538
const isSignalView = declarationLView[FLAGS] & LViewFlags.SignalView;
3639
const viewFlags = isSignalView ? LViewFlags.SignalView : LViewFlags.CheckAlways;
3740
const embeddedLView = createLView<T>(
38-
declarationLView, embeddedTView, context, viewFlags, null, templateTNode, null, null, null,
39-
options?.injector ?? null, options?.dehydratedView ?? null);
41+
declarationLView, embeddedTView, context, viewFlags, null, templateTNode, null, null,
42+
options?.injector ?? null, options?.embeddedViewInjector ?? null,
43+
options?.dehydratedView ?? null);
4044

4145
const declarationLContainer = declarationLView[templateTNode.index];
4246
ngDevMode && assertLContainer(declarationLContainer);

0 commit comments

Comments
 (0)