我正在尝试配置几个水平路由(即-未嵌套),并将它们放入一个惰性加载模块。
问题是,我不知道如何在惰性加载的特性模块中匹配这些路由。
主路由模块是这样的-
{
path: 'search/:query',
loadChildren: () => import('src/pages/archives.module').then(m => m.ArchivesModule),
},
{
path: 'category/:category',
loadChildren: () => import('src/pages/archives.module').then(m => m.ArchivesModule),
},
{
path: 'tag/:tag',
loadChildren: () => import('src/pages/archives.module').then(m => m.ArchivesModule),
},
然后,在我的功能模块中,我试图匹配那些基于路径的路由,但它不工作-
{
path: 'search/:query',
component: SearchComponent,
resolver: SearchResolver,
},
{
path: 'category/:category',
component: CategoryComponent,
resolver: CategoryResolver,
},
{
path: 'tag/:tag',
component: TagComponent,
resolver: TagResolver,
},
当我尝试访问完整的复制路由时,它确实有效,例如:
domain.com/category/:cat/category/:cat
所以我猜唯一缺少的是一种在特性模块中匹配父路由的方法,但是我在它周围找不到任何东西。
代码结构不干净。您正在创建一个模块,该模块使用三条路由路由到另一个模块。为什么不把这些路由从父模块中移除,而把它们放在特性模块中呢?父模块:
{
path: '/',
loadChildren: () => import('src/pages/archives.module').then(m => m.ArchivesModule),
}
功能模块:
{
path: 'search/:query',
component: SearchComponent,
resolver: SearchResolver,
},
{
path: 'category/:category',
component: CategoryComponent,
resolver: CategoryResolver,
},
{
path: 'tag/:tag',
component: TagComponent,
resolver: TagResolver,
},