Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Angular2: Make route paths case insensitive

I have the following routing configuration.

@RouteConfig([     {         path: '/home',         name: 'Homepage',         component: HomepageComponent,         useAsDefault: true     } ) export class AppComponent { } 

whenever the browser is pointed to /home this route works but not for /Home or any other case variations. How can I make the router to route to the component without caring the case.

thanks

like image 590
Deena Avatar asked Mar 22 '16 12:03

Deena


1 Answers

Here's what I did.

import { DefaultUrlSerializer, UrlTree } from '@angular/router';  export class LowerCaseUrlSerializer extends DefaultUrlSerializer {     parse(url: string): UrlTree {         // Optional Step: Do some stuff with the url if needed.          // If you lower it in the optional step          // you don't need to use "toLowerCase"          // when you pass it down to the next function         return super.parse(url.toLowerCase());      } } 

And

@NgModule({     imports: [       ...     ],     declarations: [AppComponent],     providers: [         {             provide: UrlSerializer,             useClass: LowerCaseUrlSerializer         }     ],     bootstrap: [AppComponent] }) 
like image 70
DimitarKostov Avatar answered Nov 03 '22 23:11

DimitarKostov