首页 文章

Angular 2多个路由器插座

提问于
浏览
2

我有一个用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 回答

  • 1

    是的,你可以有嵌套的路由器插座 .

    这是我的种子项目 .

    https://github.com/danday74/angular2-coverage/tree/master/app

  • 1

    除了确保在路由阵列中为登录组件定义了路由之外,您无需特别执行任何操作来将登录组件连接到默认值 . 但是,如果您希望它显示在页面的某个区域中,您可能希望将其放在指定的插座中 . 要做到这一点,您只需在路由组件中指定插座,如下所示: { path: 'login', component: myLoginComponent, outlet: 'leftSidebar', children: [] } 官方文档有关于如何set up the routing component的说明 .

相关问题