【发布时间】:2018-12-27 11:48:29
【问题描述】:
我想要完成的工作:
我有多个嵌套的功能模块。
AppModule
-- DashboardModule
----- DashboardReportsModule
在路径“仪表板”上,我想将用户重定向到“仪表板/报告”(仪表板的主视图),同时从 DashboardModule 加载包含一些布局 html、其他共享组件和另一个路由器出口的 DashboardComponent元素(名称="dashboard-main-outlet")。
然后,第二个路由器出口应从 DashboardReportsModule 加载 DashboardReportsComponent(其中将包含一些其他组件和 html...)。
*当导航到其他内部路径(例如“仪表板/设置”、“仪表板/...”)时,第二个路由器插座应该是要更改的,同时保持仪表板组件布局就位。
我是如何做到这一点的:
从根应用程序,在名为“仪表板”的路径上,我像这样路由到 DashboardModule(PageNotFoundComponent 是一个共享的 404 组件):
src/app/app-routing.module
...
{
path: 'dashboard',
loadChildren: './dashboard/dashboard.module#DashboardModule'
},
...
然后,在 DashboardRoutingModule 上,我添加了以下内容:
src/app/dashboard/dashboard-routing.module.ts
...
{
path: '',
pathMatch: 'full',
component: DashboardComponent,
redirectTo: 'reports'
},
{
path: '',
children: [
{
path: 'reports',
loadChildren: './dashboard-reports/dashboard-reports.module#DashboardReportsModule',
outlet: 'dashboard-main-outlet'
}
]
},
{ path: '**', component: PageNotFoundComponent }
...
这是 DashboardComponent 的模板(第二个路由器插座所在的位置,主要的放在 AppComponent 模板中):
src/app/dashboard/dashboard.component.html
<h1 class="title">Welcome to the Dashboard!</h1>
<router-outlet name="dashboard-main-outlet"></router-outlet>
结果:
浏览到“仪表板”时,我被重定向到“仪表板/报告”并收到 404 消息。
另一方面,当我删除outlet: 'dashboard-main-outlet' 时,我看到了DashboardReportsComponent 的内容,但没有来自DashboardComponent 的<h1>(它已加载到主路由器插座中)。
我做错了什么?
任何建议都可以。
【问题讨论】:
标签: angular angular2-routing angular-routing angular6