有没有办法只在Angular 2中的完整路径上进行延迟加载

时间:2017-01-02 23:13:49

标签: angular lazy-loading angular2-routing

以下路径应演示我的路线配置:

  • 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之类的明确前缀,因为我喜欢我的用户,因为如果他们愿意,只需更改地址栏的日期即可。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

试试这个:

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

并且“天”路线中的第三个pathMatch: 'full'不是必需的。