2017-02-06 9 views
5
const routes: Routes = [ 
{ path: 'x', component: xComponent }, 
{ path: 'y', component: yComponent }, 
{ path: 'zComponent', component: zComponent } 
]; 

Если я пишу в URL-адресе x маленьким, он направит меня на страницу компонента, если я напишу X Capital, он скажет недействительный url.угловой 2 Маршруты 3.0, чувствительные к регистру

Как сделать URL нечувствителен Case

+0

Попробуйте это: http://stackoverflow.com/a/39560520/1081079 – freshbm

ответ

14

Возможны два варианты .. 1. создать 1 URLSerializer класса

import { DefaultUrlSerializer, UrlTree } from '@angular/router'; 

export class LowerCaseUrlSerializer extends DefaultUrlSerializer { 
    parse(url: string): UrlTree { 
     return super.parse(url.toLowerCase()); 
    } 
} 

И в вашем app.module.ts

providers: [ 
     { 
      provide: UrlSerializer, 
      useClass: LowerCaseUrlSerializer 
     } 
    ], 

Вариант 2 : Простой обходной путь в файле маршрута.

{ path: '/home', redirectTo: ['/Home'] }, 
{ path: '/Home', component: HomeComponent, name: 'Home' }, 
+0

первый вариант лучше, я мог бы найти. Потому что относится и к параметрам маршрута. –

+0

Важное примечание к опции 1: вы должны добавить его только поставщикам модулей корневого модуля и только этому модулю. –

+0

Для этого все ваши маршруты должны быть строчными –

Смежные вопросы