Skip to content

Commit 92d8696

Browse files
committed
fix(router): use lazy default injector for setupInjectionContextForLoadChildren
1 parent 21240b0 commit 92d8696

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

packages/router/src/load-children-injection.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,17 +47,18 @@ import { Route } from '@angular/router';
4747
*/
4848
export function setupInjectionContextForLoadChildren(
4949
route: Route,
50-
injectorDefault?: Injector,
50+
injectorDefault?: () => Injector,
5151
): Route {
52-
let injector: Injector | undefined = injectorDefault;
52+
let injectorRoute: Injector | undefined;
5353
const injectorInitializer = () => {
54-
injector = inject(Injector);
54+
injectorRoute = inject(Injector);
5555
};
5656

5757
const transformRoute = (child: Route) => {
5858
if (!child.loadChildren) return child;
5959
const loadChildren = child.loadChildren;
6060
child.loadChildren = (...args) => {
61+
const injector = injectorRoute ?? injectorDefault?.();
6162
if (!injector) throw new Error('missing injector for loadChildren');
6263
return runInInjectionContext(injector, () => loadChildren(...args));
6364
};

0 commit comments

Comments
 (0)