我正在使用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 回答
从错误中可以清楚地看出,你必须定义子路由以使你的应用程序正常工作,所以你必须在dummylogin的路由添加中添加
/...
这样因此,根据angular2的路由规则,您必须在子路由时定义一条路由或
useAsDefault: true
所以在dummylogin你必须定义路由并定义至少一个这样的默认路由 -
])
也可以看看
所以你从/开始,然后转到/ dummylogin然后尝试去/ dummylogin / overview - 子路由,也许它被视为没有斜线的相对路径 . 我想你应该使用
this.router.navigateByUrl(['/Overview'])
.由于虚拟登录路由是父app组件的子路由,因此'll need to specify that in the app' s
RouteConfig
. 这是通过将/...
添加到该路径的路径末尾来完成的 .例:
编辑:
我想要的是在父应用程序组件的RouteConfig中定义两个路由,并使用依赖注入访问登录组件中的路由器 . 我做了一个plunker example