我已经阅读了angular2上的整个路由文档,同时也搜索了一个答案,但是我没有找到解决方案。Angular2路由器:同一个家庭组件上的不同模块
我有不同的特征的模块的应用程序。每个功能模块的路由应在每个功能模块内部定义。我想拥有一个家庭组件,并带有一个菜单,让我可以导航到每个功能,顶部栏,页脚等,并且还可以在页面中心找到一个router-outlet
。 我想让每个功能模块都在那个router-outlet
中呈现。
我应该如何处理这种情况?
在另一个职位的也叫数字体系模块的(虽然我没有广泛的层次结构,只需一个模块打电话回家,包含所有其他功能模块)
我创造了这个与不工作(该功能模块显示在整个页面,而不是在家里的router-outlet
):
app.module.ts
@NgModule({
imports: [
BrowserModule,
HttpModule,
**HomeModule**,
**routing**,
],
declarations: [
...
],
providers: [
...
],
bootstrap: [AppComponent]
})
export class AppModule {}
个app.routing.ts这些都是默认路由
const appRoutes: Routes = [
{path: '', component: HomeComponent, canActivate: [AuthGuard]},
{path: 'login', component: LoginComponent},
{path: 'register', component: RegisterComponent},
{path: '**', redirectTo: ''}
];
export const routing = RouterModule.forRoot(appRoutes);
home.module.ts这是主要的家用模块。该模块进口这里人特征模块(FamiliaModule是一个例子)
@NgModule({
imports: [
CommonModule,
FormsModule,
FamiliaModule
],
declarations: [
],
providers: [
]
})
export class HomeModule {}
familia.module.ts最后,一个特征模块定义其路由。
const familiaRoutes: Routes = [
{path: 'familias', canActivate: [AuthGuard], component: FamiliasComponent}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
RouterModule.forChild(familiaRoutes),
PanelModule,
ButtonModule,
PanelMenuModule,
DataTableModule,
SharedModule,
DropdownModule,
DialogModule,
InputTextModule
],
declarations: [
FamiliasComponent
],
providers: [
AlertService,
FamiliaService,
EstadoService
]
})
export class FamiliaModule {}
如何使FamiliaModule显示在HomeComponent内部?有RootModule.forRoot或forChild与它有关吗?现在,当我转到/
时,我可以看到主视图,但当我导航到/familias
时,FamiliaComponent会用菜单,标题等替换主视图,并显示在整个页面中。
谢谢!
编辑
澄清编辑#2
这里
添加的图像是home.component.html
<div id="layout-sidebar">
<img class="logo-sidebar" />
<p-panelMenu [model]="menuItems" [style]="{'width':'300px'}"></p-panelMenu>
</div>
<div id="layout-content">
<div id="top-bar">
<span class="ui-widget">Bienvenido, <b>{{currentUser.nombre}}</b>!</span>
<button icon="fa-sign-out" pButton [routerLink]="['/login']" label="Cerrar sesión"></button>
</div>
<router-outlet></router-outlet>
</div>
谢谢,但我没有看到一个插座如何解决问题。问题是FamiliaComponent在app.main.ts的'router-outlet'上呈现,而不是在home.module.ts上呈现。我应该在哪里插入我的HomeComponent? – jigarzon
你可以显示你的home.routing.ts和familia.routing.ts?因为在您的家庭组件中,您可以插入另一个 –
brijmcq
谢谢Brian,我添加了一张图片以供澄清。我可以在homecomponent中添加插座,但HomeComponent从不使用!我不知道该把它放在哪里 – jigarzon