@@ -94,29 +94,29 @@ import { UIView, ParentUIViewInject } from "./directives/uiView";
94
94
import { ng2ViewsBuilder , Ng2ViewConfig } from "./statebuilders/views" ;
95
95
import { Ng2ViewDeclaration } from "./interface" ;
96
96
import { applyRootModuleConfig , applyModuleConfig } from "./uiRouterConfig" ;
97
- import { UIRouterLocation } from "./location/uiRouterLocation" ;
98
97
import { RootModule , StatesModule , UIROUTER_ROOT_MODULE , UIROUTER_MODULE_TOKEN } from "./uiRouterNgModule" ;
99
98
import { servicesPlugin } from "ui-router-core/lib/vanilla" ;
100
99
import { ServicesPlugin } from "ui-router-core/lib/vanilla/interface" ;
101
100
import { ng2LazyLoadBuilder } from "./statebuilders/lazyLoad" ;
102
101
import { UIRouterRx } from "ui-router-rx" ;
102
+ import { LocationStrategy , PlatformLocation } from "@angular/common" ;
103
+ import { Ng2LocationServices } from "./location/locationService" ;
104
+ import { Ng2LocationConfig } from "./location/locationConfig" ;
103
105
104
106
/**
105
107
* This is a factory function for a UIRouter instance
106
108
*
107
109
* Creates a UIRouter instance and configures it for Angular 2, then invokes router bootstrap.
108
110
* This function is used as an Angular 2 `useFactory` Provider.
109
111
*/
110
- export function uiRouterFactory ( location : UIRouterLocation , injector : Injector ) {
111
-
112
+ export function uiRouterFactory ( locationStrategy : LocationStrategy , platformLocation : PlatformLocation , injector : Injector ) {
112
113
let rootModules : RootModule [ ] = injector . get ( UIROUTER_ROOT_MODULE ) ;
113
114
let modules : StatesModule [ ] = injector . get ( UIROUTER_MODULE_TOKEN ) ;
114
115
115
116
if ( rootModules . length !== 1 ) {
116
117
throw new Error ( "Exactly one UIRouterModule.forRoot() should be in the bootstrapped app module's imports: []" ) ;
117
118
}
118
119
119
-
120
120
// ----------------- Create router -----------------
121
121
// Create a new ng2 UIRouter and configure it for ng2
122
122
let router = new UIRouter ( ) ;
@@ -134,7 +134,8 @@ export function uiRouterFactory(location: UIRouterLocation, injector: Injector)
134
134
135
135
136
136
// ----------------- Configure for ng2 -------------
137
- location . init ( router ) ;
137
+ router . locationService = new Ng2LocationServices ( router , locationStrategy , platformLocation ) ;
138
+ router . locationConfig = new Ng2LocationConfig ( router , locationStrategy , platformLocation ) ;
138
139
139
140
// Apply ng2 ui-view handling code
140
141
let viewConfigFactory = ( path : PathNode [ ] , config : Ng2ViewDeclaration ) => new Ng2ViewConfig ( path , config ) ;
@@ -168,8 +169,7 @@ export function uiRouterFactory(location: UIRouterLocation, injector: Injector)
168
169
export function parentUIViewInjectFactory ( r : StateRegistry ) { return { fqn : null , context : r . root ( ) } as ParentUIViewInject ; }
169
170
170
171
export const _UIROUTER_INSTANCE_PROVIDERS : Provider [ ] = [
171
- { provide : UIRouter , useFactory : uiRouterFactory , deps : [ UIRouterLocation , Injector ] } ,
172
- { provide : UIRouterLocation , useClass : UIRouterLocation } ,
172
+ { provide : UIRouter , useFactory : uiRouterFactory , deps : [ LocationStrategy , PlatformLocation , Injector ] } ,
173
173
{ provide : UIView . PARENT_INJECT , useFactory : parentUIViewInjectFactory , deps : [ StateRegistry ] } ,
174
174
] ;
175
175
0 commit comments