首页 文章

Angularjs 2路由:登录后重定向到仪表板

提问于
浏览
1

我正在使用Angular2 beta.14 .

我想要做的是创建一个虚拟登录,然后将用户重定向到受保护的概述页面,该页面包含指向其他组件的链接 .

像这样,

登录前

  • ,访问 localhost:3000/ 或任何受保护的页面将被重定向到 localhost:3000/dummylogin

用户登录后

  • ,将用户重定向到 localhost:3000/overview

现在,我有

app.component - 包含 /dummylogin 的路由配置

overview.component - 包含 /update 等的路由配置

dummy-login.component - 包含 /overview 的路由配置

在登录组件中,我尝试使用 this.router.navigateByUrl(['Overview']) 在进行虚拟身份验证后将用户重定向到 Overview 组件 . 但我得到了这个错误

ORIGINAL EXCEPTION: Child routes are not allowed for "/dummylogin".    
Use "..." on the parent's route path.

这个错误消息对我来说没有意义 . 而且,我不确定我是否正确的方向 . 任何想法将不胜感激 .

3 回答

  • 1

    “/ dummylogin”不允许使用子路径 . 在父路径路径上使用“...” .

    从错误中可以清楚地看出,你必须定义子路由以使你的应用程序正常工作,所以你必须在dummylogin的路由添加中添加 /... 这样

    @RouteConfig([
    { path: '/dummylogin/...', as: 'DummyLogin', component: DummyLogin}
    ])
    

    因此,根据angular2的路由规则,您必须在子路由时定义一条路由或 useAsDefault: true

    所以在dummylogin你必须定义路由并定义至少一个这样的默认路由 -

    @RouteConfig([
    { path: '/overview', as: 'overview', component: overview, useAsDefault : true}
    
    ....
    

    ])

    也可以看看

  • 0

    所以你从/开始,然后转到/ dummylogin然后尝试去/ dummylogin / overview - 子路由,也许它被视为没有斜线的相对路径 . 我想你应该使用 this.router.navigateByUrl(['/Overview']) .

  • 0

    由于虚拟登录路由是父app组件的子路由,因此'll need to specify that in the app' s RouteConfig . 这是通过将 /... 添加到该路径的路径末尾来完成的 .

    例:

    @RouteConfig([
       { path: '/dummylogin/...', as: 'DummyLogin', component: DummyLogin }
    ])
    export class AppComponent {
    ...
    }
    

    编辑:

    我想要的是在父应用程序组件的RouteConfig中定义两个路由,并使用依赖注入访问登录组件中的路由器 . 我做了一个plunker example

相关问题