Javascript 延迟加载角度模块,但不使用路由前缀

Javascript 延迟加载角度模块,但不使用路由前缀,javascript,angular,typescript,Javascript,Angular,Typescript,我有一个应用程序,我正在懒洋洋地加载一个名为lazy的模块。该模块通过以下方式延迟加载: { path:'lazy', loadChildren: './lazy/lazy.module#LazyModule' } lazy模块中有以下路由: const routes = [ { path: '', component: LazyComponent }, { path: 'faq', component: FaqComponent }, {

我有一个应用程序,我正在懒洋洋地加载一个名为
lazy
的模块。该模块通过以下方式延迟加载:

{
  path:'lazy',
  loadChildren: 
  './lazy/lazy.module#LazyModule'
}
lazy
模块中有以下路由:

const routes = [
 {
   path: '',
   component: LazyComponent
 },
 {
   path: 'faq',
   component: FaqComponent
 },
 {
   path: 'details',
   component: DetailsComponent
 },
]
上述操作很好,但我只能通过
/lazy/faq
/lazy/details
访问延迟加载模块的路由。但我真正想要的是不要使用路由前缀
lazy
,而是直接通过
/faq
/details
访问我的延迟加载模块的路由


这可能吗?我还没有找到解决方案。

延迟加载模块中组件的url是指向模块的url的组合,例如'lazy'->lazyloademdodule加上该模块中的相对路径,例如'faq->FaqComponent

因此url是
path/to/lazy模块+“relative/path”
。在您的情况下,
lazy/faq
。不能省略前缀

您可以在路由配置中添加重定向:

path: 'faq',
pathMatch: 'full,
redirectTo: 'lazy/faq'
在惰性模块中使用路由时,可以使用相对路由:
this.router.navigate(['faq'])
但是浏览器中的url将是
lazy/faq

另一种选择是使用空路由加载模块:

path:'',
loadChildren: ...
但这会在应用程序启动时立即加载模块