【问题标题】:Angular 2 multiple router outletsAngular 2 多个路由器插座
【发布时间】:2017-03-09 22:03:13
【问题描述】:

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

在我的路线中,如果在 localStorage 中没有注册令牌,我会告诉 angular 重定向到 /Login:

canActivate(): boolean {
    if (!localStorage.getItem('token')) { 
        this.router.navigate(['/login']);
        return false;
    }
    return true;
}

这很好用,但我的问题是我想显示 /Login (LoginComponent) 不是带有侧边栏、菜单和页脚的路由器插座,而是在它自己的路由器插座中没有其他组件。

你知道怎么做吗?

【问题讨论】:

标签: angular angular2-routing angular-cli


【解决方案1】:

除了确保在路由数组中为登录组件定义了一个路由外,您不必做任何特别的事情来将登录组件连接到默认值。但是,如果您希望它显示在页面的某个区域,例如,您可能希望将其放置在命名的插座中。为此,您只需在路由组件中指定出口,如下所示: { path: 'login', component: myLoginComponent, outlet: 'leftSidebar', children: [] } 官方文档中有关于如何set up the routing component的说明。

【讨论】:

    【解决方案2】:

    是的,您可以拥有嵌套的路由器插座。

    这是我的种子项目。

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

    【讨论】:

    • 我无法理解如何将组件链接到除主路由之外的其他路由!
    • 看我的例子,它只是一个基本的种子项目,代码最少
    • 我需要从概念上理解它!如果您能解释一下如何将组件链接到另一条路线,那将是完美的!谢谢
    • 为了快速修复,只需确保您的登录路由绑定到您的登录组件并且您的登录组件没有路由器出口。
    • 这是我的问题!我的登录组件没有路由器异常,但我不知道如何将登录路由绑定到登录组件。谢谢你的帮助
    猜你喜欢
    • 2016-12-30
    • 2018-07-28
    • 2018-11-24
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 2017-03-04
    • 2017-04-29
    相关资源
    最近更新 更多