有没有办法只在 Angular 2 中在完整路径上延迟加载
Is there a way to Lazy Load on full path only in Angular 2
以下路径应该演示我的路由配置:
calendar/2016/11/15
= 日视图 (DayModule
)
calendar/2016/11
= 月视图 (MonthModule
)
calendar/2016
= 年视图 (YearModule
)
每个视图都有自己的模块和组件,我想单独延迟加载它们。目前正确的组件加载,但问题是当我加载时,例如 MonthModule
然后它触发的 YearModule
延迟加载,因为它的基本路径已经被命中。
即calendar/2016/11
我什至把我的路线安排成兄弟姐妹而不是 children:
{ // 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
,因为我希望我的用户这样做,因为如果他们愿意,只需更改地址栏中的日期。有办法实现吗?
试试这个:
{ path: ':year', pathMatch: 'full', loadChildren: ...},
{ path: ':year/:month', pathMatch: 'full', loadChildren: ...},
{ path: ':year/:month/:day', pathMatch: 'full', loadChildren: ...}
并且 'day' 路线中的第三个 pathMatch: 'full'
不是必需的。
以下路径应该演示我的路由配置:
calendar/2016/11/15
= 日视图 (DayModule
)calendar/2016/11
= 月视图 (MonthModule
)calendar/2016
= 年视图 (YearModule
)
每个视图都有自己的模块和组件,我想单独延迟加载它们。目前正确的组件加载,但问题是当我加载时,例如 MonthModule
然后它触发的 YearModule
延迟加载,因为它的基本路径已经被命中。
即calendar/2016/11
我什至把我的路线安排成兄弟姐妹而不是 children:
{ // 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
,因为我希望我的用户这样做,因为如果他们愿意,只需更改地址栏中的日期。有办法实现吗?
试试这个:
{ path: ':year', pathMatch: 'full', loadChildren: ...},
{ path: ':year/:month', pathMatch: 'full', loadChildren: ...},
{ path: ':year/:month/:day', pathMatch: 'full', loadChildren: ...}
并且 'day' 路线中的第三个 pathMatch: 'full'
不是必需的。