@@ -60,14 +60,17 @@ class RefCache {
6060export class PageRouterOutlet {
6161 private viewUtil : ViewUtil ;
6262 private refCache : RefCache = new RefCache ( ) ;
63- private isInitalPage : boolean = true ;
63+ private isInitialPage : boolean = true ;
6464 private detachedLoaderFactory : ComponentFactory < DetachedLoader > ;
6565
6666 private currentActivatedComp : ComponentRef < any > ;
6767 private currentActivatedRoute : ActivatedRoute ;
6868
6969 public outletMap : RouterOutletMap ;
7070
71+ get locationInjector ( ) : Injector { return this . containerRef . injector ; }
72+ get locationFactoryResolver ( ) : ComponentFactoryResolver { return this . resolver ; }
73+ 7174 get isActivated ( ) : boolean {
7275 return ! ! this . currentActivatedComp ;
7376 }
@@ -93,7 +96,7 @@ export class PageRouterOutlet {
9396 @Attribute ( 'name' ) name : string ,
9497 private locationStrategy : NSLocationStrategy ,
9598 private componentFactoryResolver : ComponentFactoryResolver ,
96- resolver : ComponentFactoryResolver ,
99+ private resolver : ComponentFactoryResolver ,
97100 private frame : Frame ,
98101 @Inject ( DEVICE ) device : Device ,
99102 @Inject ( PAGE_FACTORY ) private pageFactory : PageFactory ) {
@@ -143,33 +146,33 @@ export class PageRouterOutlet {
143146 * This method in turn is responsible for calling the `routerOnActivate` hook of its child.
144147 */
145148 activate (
146- activatedRoute : ActivatedRoute , loadedResolver : ComponentFactoryResolver ,
147- loadedInjector : Injector , providers : ResolvedReflectiveProvider [ ] ,
148- outletMap : RouterOutletMap ) : void {
149+ activatedRoute : ActivatedRoute , resolver : ComponentFactoryResolver , injector : Injector ,
150+ providers : ResolvedReflectiveProvider [ ] , outletMap : RouterOutletMap ) : void {
149151 this . outletMap = outletMap ;
150152 this . currentActivatedRoute = activatedRoute ;
151153
152154 if ( this . locationStrategy . _isPageNavigatingBack ( ) ) {
153155 this . activateOnGoBack ( activatedRoute , providers , outletMap ) ;
154156 } else {
155- this . activateOnGoForward ( activatedRoute , providers , outletMap , loadedResolver ) ;
157+ this . activateOnGoForward ( activatedRoute , providers , outletMap , resolver , injector ) ;
156158 }
157159 }
158160
159161 private activateOnGoForward (
160162 activatedRoute : ActivatedRoute ,
161163 providers : ResolvedReflectiveProvider [ ] ,
162164 outletMap : RouterOutletMap ,
163- loadedResolver : ComponentFactoryResolver ) : void {
165+ loadedResolver : ComponentFactoryResolver ,
166+ injector : Injector ) : void {
164167 const factory = this . getComponentFactory ( activatedRoute , loadedResolver ) ;
165168
166169 const pageRoute = new PageRoute ( activatedRoute ) ;
167170 providers = [ ...providers , ...ReflectiveInjector . resolve ( [ { provide : PageRoute , useValue : pageRoute } ] ) ] ;
168171
169- if ( this . isInitalPage ) {
170- log ( "PageRouterOutlet.activate() inital page - just load component" ) ;
171- this . isInitalPage = false ;
172- const inj = ReflectiveInjector . fromResolvedProviders ( providers , this . containerRef . parentInjector ) ;
172+ if ( this . isInitialPage ) {
173+ log ( "PageRouterOutlet.activate() initial page - just load component" ) ;
174+ this . isInitialPage = false ;
175+ const inj = ReflectiveInjector . fromResolvedProviders ( providers , injector ) ;
173176 this . currentActivatedComp = this . containerRef . createComponent ( factory , this . containerRef . length , inj , [ ] ) ;
174177 this . refCache . push ( this . currentActivatedComp , pageRoute , outletMap , null ) ;
175178
@@ -180,7 +183,7 @@ export class PageRouterOutlet {
180183 const pageResolvedProvider = ReflectiveInjector . resolve ( [
181184 { provide : Page , useValue : page }
182185 ] ) ;
183- const childInjector = ReflectiveInjector . fromResolvedProviders ( [ ...providers , ...pageResolvedProvider ] , this . containerRef . parentInjector ) ;
186+ const childInjector = ReflectiveInjector . fromResolvedProviders ( [ ...providers , ...pageResolvedProvider ] , injector ) ;
184187 const loaderRef = this . containerRef . createComponent ( this . detachedLoaderFactory , this . containerRef . length , childInjector , [ ] ) ;
185188
186189 this . currentActivatedComp = loaderRef . instance . loadWithFactory ( factory ) ;
@@ -193,7 +196,7 @@ export class PageRouterOutlet {
193196 activatedRoute : ActivatedRoute ,
194197 providers : ResolvedReflectiveProvider [ ] ,
195198 outletMap : RouterOutletMap ) : void {
196- log ( "PageRouterOutlet.activate() - Back naviation , so load from cache" ) ;
199+ log ( "PageRouterOutlet.activate() - Back navigation , so load from cache" ) ;
197200
198201 this . locationStrategy . _finishBackPageNavigation ( ) ;
199202
0 commit comments