@@ -60,14 +60,17 @@ class RefCache {
60
60
export class PageRouterOutlet {
61
61
private viewUtil : ViewUtil ;
62
62
private refCache : RefCache = new RefCache ( ) ;
63
- private isInitalPage : boolean = true ;
63
+ private isInitialPage : boolean = true ;
64
64
private detachedLoaderFactory : ComponentFactory < DetachedLoader > ;
65
65
66
66
private currentActivatedComp : ComponentRef < any > ;
67
67
private currentActivatedRoute : ActivatedRoute ;
68
68
69
69
public outletMap : RouterOutletMap ;
70
70
71
+ get locationInjector ( ) : Injector { return this . containerRef . injector ; }
72
+ get locationFactoryResolver ( ) : ComponentFactoryResolver { return this . resolver ; }
73
+
71
74
get isActivated ( ) : boolean {
72
75
return ! ! this . currentActivatedComp ;
73
76
}
@@ -93,7 +96,7 @@ export class PageRouterOutlet {
93
96
@Attribute ( 'name' ) name : string ,
94
97
private locationStrategy : NSLocationStrategy ,
95
98
private componentFactoryResolver : ComponentFactoryResolver ,
96
- resolver : ComponentFactoryResolver ,
99
+ private resolver : ComponentFactoryResolver ,
97
100
private frame : Frame ,
98
101
@Inject ( DEVICE ) device : Device ,
99
102
@Inject ( PAGE_FACTORY ) private pageFactory : PageFactory ) {
@@ -143,33 +146,33 @@ export class PageRouterOutlet {
143
146
* This method in turn is responsible for calling the `routerOnActivate` hook of its child.
144
147
*/
145
148
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 {
149
151
this . outletMap = outletMap ;
150
152
this . currentActivatedRoute = activatedRoute ;
151
153
152
154
if ( this . locationStrategy . _isPageNavigatingBack ( ) ) {
153
155
this . activateOnGoBack ( activatedRoute , providers , outletMap ) ;
154
156
} else {
155
- this . activateOnGoForward ( activatedRoute , providers , outletMap , loadedResolver ) ;
157
+ this . activateOnGoForward ( activatedRoute , providers , outletMap , resolver , injector ) ;
156
158
}
157
159
}
158
160
159
161
private activateOnGoForward (
160
162
activatedRoute : ActivatedRoute ,
161
163
providers : ResolvedReflectiveProvider [ ] ,
162
164
outletMap : RouterOutletMap ,
163
- loadedResolver : ComponentFactoryResolver ) : void {
165
+ loadedResolver : ComponentFactoryResolver ,
166
+ injector : Injector ) : void {
164
167
const factory = this . getComponentFactory ( activatedRoute , loadedResolver ) ;
165
168
166
169
const pageRoute = new PageRoute ( activatedRoute ) ;
167
170
providers = [ ...providers , ...ReflectiveInjector . resolve ( [ { provide : PageRoute , useValue : pageRoute } ] ) ] ;
168
171
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 ) ;
173
176
this . currentActivatedComp = this . containerRef . createComponent ( factory , this . containerRef . length , inj , [ ] ) ;
174
177
this . refCache . push ( this . currentActivatedComp , pageRoute , outletMap , null ) ;
175
178
@@ -180,7 +183,7 @@ export class PageRouterOutlet {
180
183
const pageResolvedProvider = ReflectiveInjector . resolve ( [
181
184
{ provide : Page , useValue : page }
182
185
] ) ;
183
- const childInjector = ReflectiveInjector . fromResolvedProviders ( [ ...providers , ...pageResolvedProvider ] , this . containerRef . parentInjector ) ;
186
+ const childInjector = ReflectiveInjector . fromResolvedProviders ( [ ...providers , ...pageResolvedProvider ] , injector ) ;
184
187
const loaderRef = this . containerRef . createComponent ( this . detachedLoaderFactory , this . containerRef . length , childInjector , [ ] ) ;
185
188
186
189
this . currentActivatedComp = loaderRef . instance . loadWithFactory ( factory ) ;
@@ -193,7 +196,7 @@ export class PageRouterOutlet {
193
196
activatedRoute : ActivatedRoute ,
194
197
providers : ResolvedReflectiveProvider [ ] ,
195
198
outletMap : RouterOutletMap ) : void {
196
- log ( "PageRouterOutlet.activate() - Back naviation , so load from cache" ) ;
199
+ log ( "PageRouterOutlet.activate() - Back navigation , so load from cache" ) ;
197
200
198
201
this . locationStrategy . _finishBackPageNavigation ( ) ;
199
202
0 commit comments