77 */
88
99import { APP_BASE_HREF , HashLocationStrategy , Location , LocationStrategy , PathLocationStrategy , PlatformLocation } from '@angular/common' ;
10- import { ANALYZE_FOR_ENTRY_COMPONENTS , APP_BOOTSTRAP_LISTENER , ApplicationRef , Compiler , ComponentRef , Inject , Injector , ModuleWithProviders , NgModule , NgModuleFactoryLoader , OpaqueToken , Optional , Provider , SkipSelf , SystemJsNgModuleLoader } from '@angular/core' ;
10+ import { ANALYZE_FOR_ENTRY_COMPONENTS , APP_BOOTSTRAP_LISTENER , ApplicationRef , Compiler , ComponentRef , Inject , Injector , ModuleWithProviders , NgModule , NgModuleFactoryLoader , NgProbeToken , OpaqueToken , Optional , Provider , SkipSelf , SystemJsNgModuleLoader } from '@angular/core' ;
1111import { Route , Routes } from './config' ;
1212import { RouterLink , RouterLinkWithHref } from './directives/router_link' ;
1313import { RouterLinkActive } from './directives/router_link_active' ;
@@ -40,29 +40,30 @@ export const ROUTER_CONFIGURATION = new OpaqueToken('ROUTER_CONFIGURATION');
4040 */
4141export const ROUTER_FORROOT_GUARD = new OpaqueToken ( 'ROUTER_FORROOT_GUARD' ) ;
4242
43- const pathLocationStrategy = {
44- provide : LocationStrategy ,
45- useClass : PathLocationStrategy
46- } ;
47- const hashLocationStrategy = {
48- provide : LocationStrategy ,
49- useClass : HashLocationStrategy
50- } ;
51-
5243export const ROUTER_PROVIDERS : Provider [ ] = [
53- Location , { provide : UrlSerializer , useClass : DefaultUrlSerializer } , {
44+ Location ,
45+ { provide : UrlSerializer , useClass : DefaultUrlSerializer } ,
46+ {
5447 provide : Router ,
5548 useFactory : setupRouter ,
5649 deps : [
5750 ApplicationRef , UrlSerializer , RouterOutletMap , Location , Injector , NgModuleFactoryLoader ,
5851 Compiler , ROUTES , ROUTER_CONFIGURATION , [ UrlHandlingStrategy , new Optional ( ) ]
5952 ]
6053 } ,
61- RouterOutletMap , { provide : ActivatedRoute , useFactory : rootRoute , deps : [ Router ] } ,
62- { provide : NgModuleFactoryLoader , useClass : SystemJsNgModuleLoader } , RouterPreloader , NoPreloading ,
63- PreloadAllModules , { provide : ROUTER_CONFIGURATION , useValue : { enableTracing : false } }
54+ RouterOutletMap ,
55+ { provide : ActivatedRoute , useFactory : rootRoute , deps : [ Router ] } ,
56+ { provide : NgModuleFactoryLoader , useClass : SystemJsNgModuleLoader } ,
57+ RouterPreloader ,
58+ NoPreloading ,
59+ PreloadAllModules ,
60+ { provide : ROUTER_CONFIGURATION , useValue : { enableTracing : false } } ,
6461] ;
6562
63+ export function routerNgProbeToken ( ) {
64+ return new NgProbeToken ( 'Router' , Router ) ;
65+ }
66+
6667/**
6768 * @whatItDoes Adds router directives and providers.
6869 *
@@ -76,10 +77,9 @@ export const ROUTER_PROVIDERS: Provider[] = [
7677 * `RouterModule.forChild`.
7778 *
7879 * * `forRoot` creates a module that contains all the directives, the given routes, and the router
79- * service itself.
80+ * service itself.
8081 * * `forChild` creates a module that contains all the directives and the given routes, but does not
81- * include
82- * the router service.
82+ * include the router service.
8383 *
8484 * When registered at the root, the module should be used as follows
8585 *
@@ -134,12 +134,15 @@ export class RouterModule {
134134 return {
135135 ngModule : RouterModule ,
136136 providers : [
137- ROUTER_PROVIDERS , provideRoutes ( routes ) , {
137+ ROUTER_PROVIDERS ,
138+ provideRoutes ( routes ) ,
139+ {
138140 provide : ROUTER_FORROOT_GUARD ,
139141 useFactory : provideForRootGuard ,
140142 deps : [ [ Router , new Optional ( ) , new SkipSelf ( ) ] ]
141143 } ,
142- { provide : ROUTER_CONFIGURATION , useValue : config ? config : { } } , {
144+ { provide : ROUTER_CONFIGURATION , useValue : config ? config : { } } ,
145+ {
143146 provide : LocationStrategy ,
144147 useFactory : provideLocationStrategy ,
145148 deps : [
@@ -151,8 +154,9 @@ export class RouterModule {
151154 useExisting : config && config . preloadingStrategy ? config . preloadingStrategy :
152155 NoPreloading
153156 } ,
154- provideRouterInitializer ( )
155- ]
157+ { provide : NgProbeToken , multi : true , useFactory : routerNgProbeToken } ,
158+ provideRouterInitializer ( ) ,
159+ ] ,
156160 } ;
157161 }
158162
@@ -196,7 +200,7 @@ export function provideForRootGuard(router: Router): any {
196200export function provideRoutes ( routes : Routes ) : any {
197201 return [
198202 { provide : ANALYZE_FOR_ENTRY_COMPONENTS , multi : true , useValue : routes } ,
199- { provide : ROUTES , multi : true , useValue : routes }
203+ { provide : ROUTES , multi : true , useValue : routes } ,
200204 ] ;
201205}
202206
@@ -297,6 +301,6 @@ export function provideRouterInitializer() {
297301 useFactory : initialRouterNavigation ,
298302 deps : [ Router , ApplicationRef , RouterPreloader , ROUTER_CONFIGURATION ]
299303 } ,
300- { provide : APP_BOOTSTRAP_LISTENER , multi : true , useExisting : ROUTER_INITIALIZER }
304+ { provide : APP_BOOTSTRAP_LISTENER , multi : true , useExisting : ROUTER_INITIALIZER } ,
301305 ] ;
302306}
0 commit comments