diff --git a/packages/core/test/bundling/router/bundle.golden_symbols.json b/packages/core/test/bundling/router/bundle.golden_symbols.json index e6774208e8f..9e5192d5175 100644 --- a/packages/core/test/bundling/router/bundle.golden_symbols.json +++ b/packages/core/test/bundling/router/bundle.golden_symbols.json @@ -428,9 +428,6 @@ { "name": "OuterSubscriber" }, - { - "name": "OutletInjector" - }, { "name": "PLATFORM_DESTROY_LISTENERS" }, diff --git a/packages/router/src/directives/router_outlet.ts b/packages/router/src/directives/router_outlet.ts index 0d47273dbbf..8de3d77f938 100644 --- a/packages/router/src/directives/router_outlet.ts +++ b/packages/router/src/directives/router_outlet.ts @@ -287,7 +287,13 @@ export class RouterOutlet implements OnDestroy, OnInit, RouterOutletContract { const snapshot = activatedRoute._futureSnapshot; const component = snapshot.component!; const childContexts = this.parentContexts.getOrCreateContext(this.name).children; - const injector = new OutletInjector(activatedRoute, childContexts, location.injector); + const injector = Injector.create({ + providers: [ + {provide: ActivatedRoute, useValue: activatedRoute}, + {provide: ChildrenOutletContexts, useValue: childContexts} + ], + parent: location.injector + }); if (resolverOrInjector && isComponentFactoryResolver(resolverOrInjector)) { const factory = resolverOrInjector.resolveComponentFactory(component); @@ -304,24 +310,6 @@ export class RouterOutlet implements OnDestroy, OnInit, RouterOutletContract { } } -class OutletInjector implements Injector { - constructor( - private route: ActivatedRoute, private childContexts: ChildrenOutletContexts, - private parent: Injector) {} - - get(token: any, notFoundValue?: any): any { - if (token === ActivatedRoute) { - return this.route; - } - - if (token === ChildrenOutletContexts) { - return this.childContexts; - } - - return this.parent.get(token, notFoundValue); - } -} - function isComponentFactoryResolver(item: any): item is ComponentFactoryResolver { return !!item.resolveComponentFactory; }