2017-01-02 4 views
0

следующих путях должны продемонстрировать свою конфигурацию маршрута:Есть ли способ Ленивых нагрузок на полном пути только в угловых 2

  • calendar/2016/11/15 = Дневной обзор (DayModule)
  • calendar/2016/11 = месяц (MonthModule)
  • calendar/2016 = Просмотр года (YearModule)

Каждый вид имеет собственный модуль и компоненты и Я бы хотел лениво загрузить их по отдельности. В настоящее время правильная загрузка компонентов, но проблема в том, что когда я загружаю, например, MonthModule, тогда загружалась ленивая загрузка YearModule, потому что его базовый путь уже был атакован.

т.е. календарь/2016/11

Я даже организовал свои маршруты, как братья и сестры, а не как дети:

{ // ROUTES 
    path: ':year', 
    loadChildren: 'app/features/year/year.module#YearModule', 
}, 
{ 
    path: ':year/:month', 
    loadChildren: 'app/features/month/month.module#MonthModule' 
}, 
{ 
    path: ':year/:month/:day', 
    loadChildren: 'app/features/day/day.module#DayModule' 
}, 

Теперь я хотел бы избежать отчетливого префикса, такие как calendar/month/2016/11 потому что я хотел бы, чтобы мой пользователь, чтобы просто изменить дату в адресной строке, если захочет. Есть ли способ сделать это?

+0

не делайте этого «поместите данные в запрос и преобразуйтесь в службы дат» –

+0

Вы имеете в виду «2016_12_23», а затем просто разорвите строку для перенаправления? –

+0

удалите дату с адреса, она не будет работать –

ответ

1

Попробуйте это:

{ path: ':year', pathMatch: 'full', loadChildren: ...}, 
{ path: ':year/:month', pathMatch: 'full', loadChildren: ...}, 
{ path: ':year/:month/:day', pathMatch: 'full', loadChildren: ...} 

И в 'день' маршрута третьего pathMatch: 'full' не является необходимым.

+0

Ах, очень просто. благодаря –