我正在使用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
点击顶级路由,将其重定向到app-navigation.module中的“ **”重定向。
我可以浏览FeatureAModule中包含的组件,并手动更改链接以包括“ a /”前缀,并且该链接有效,但是我想知道是否有更好的方法来确保功能中定义的所有路由模块留在那里。
谢谢。
答案 0 :(得分:0)
我不确定这是否是处理此问题的最佳方法,但最终我将其添加到app-routing.module.ts:
{ path: 'page1', redirectTo: '/a/page1' },
{ path: 'page2', redirectTo: '/a/page2' },
这样,当主路由器看到page1或page2 url时,它将重定向到/ a / page1(2)。这行得通,但是正如我提到的,如果这是处理此问题的最佳方法,我不是。