我有一个用Angular cli创建的Angular 2应用程序,我的app.component.html看起来像这样:
<app-navigation></app-navigation>
<app-top-navbar></app-top-navbar>
<router-outlet></router-outlet>
<app-footer></app-footer>
<app-right-sidebar></app-right-sidebar>
在我的路由中,我有这个条件告诉angular重定向到/ Login如果在localStorage中没有注册令牌:
canActivate(): boolean {
if (!localStorage.getItem('token')) {
this.router.navigate(['/login']);
return false;
}
return true;
}
这完美地工作,但我的问题是,我想显示/登录(LoginComponent)不是这个路由器插座与侧边栏,菜单和页脚,但在自己的路由器 - oulter没有其他组件 .
有什么想法怎么做?
2 回答
是的,你可以有嵌套的路由器插座 .
这是我的种子项目 .
https://github.com/danday74/angular2-coverage/tree/master/app
除了确保在路由阵列中为登录组件定义了路由之外,您无需特别执行任何操作来将登录组件连接到默认值 . 但是,如果您希望它显示在页面的某个区域中,您可能希望将其放在指定的插座中 . 要做到这一点,您只需在路由组件中指定插座,如下所示:
{ path: 'login', component: myLoginComponent, outlet: 'leftSidebar', children: [] }
官方文档有关于如何set up the routing component的说明 .