Angular 4 延迟加载功能模块中的路由

Angular 4 routing in lazy loaded feature module

我正在使用 Angular 4.1.3。我们的应用程序开始时很小,但已经发展到需要使用功能模块的程度。所以,我开始将它分解成模块。我有以下设置:

- app.module - app-routing.module --- feature-a.module

feature-a.module 在 app-routing.module 中加载为: ... { path: 'a', loadChildren: '/app/components/a/feature-a.module#FeatureAModule' }, ...

在 FeatureAModule 中,我将路由设置为正常处理页面,但由于这些页面现在是功能模块的一部分,它们应该加载为:

localhost:4200/a/page1 localhost:4200/a/page2

问题是最初所有路由都设置在顶层,所以我所有的内部路由链接都指向:

localhost:4200/page1 localhost:4200/page2

它命中顶级路由,将它们重定向到应用程序中的“**”重定向-navigation.module。

我可以浏览 FeatureAModule 中包含的组件并手动更改链接以包含 "a/" 前缀,这很有效,但我想知道是否有更好的方法来确保定义的所有路由在功能模块中留在那里。

谢谢。

我不确定这是否是处理此问题的最佳方式,但我最终将其添加到 app-routing.module.ts:

{ path: 'page1', redirectTo: '/a/page1' },
{ path: 'page2', redirectTo: '/a/page2' },

这样,当主路由器看到 page1 或 page2 url 时,它会重定向到 /a/page1(2)。这行得通,但正如我提到的,如果这是处理此问题的最佳方法,我不是。