Angular 角度2(RC6)-启动组件中的布线不';工作
在我的实际应用程序中,我想检查启动组件(通常是app.component.ts)中的用户是否经过身份验证。如果没有,我想将它们路由到登录组件。但是路由在这里不起作用 我创建了一个简单的Plunker示例,其中它是可复制的:Angular 角度2(RC6)-启动组件中的布线不';工作,angular,angular-routing,angular-rc5,Angular,Angular Routing,Angular Rc5,在我的实际应用程序中,我想检查启动组件(通常是app.component.ts)中的用户是否经过身份验证。如果没有,我想将它们路由到登录组件。但是路由在这里不起作用 我创建了一个简单的Plunker示例,其中它是可复制的: 打开 单击按钮“导航到示例1”-->一切正常 但是您可以看到,我在app/app.component.ts中已经有了相同的路由命令,但是应用程序没有路由到组件。为什么 谢谢你的帮助 如果用setTimeout()将其包装起来,则工作正常 setTimeout(() =>
app/app.component.ts
中已经有了相同的路由命令,但是应用程序没有路由到组件。为什么谢谢你的帮助 如果用
setTimeout()
将其包装起来,则工作正常
setTimeout(() => {
this.router.navigate(["/sample1", "2"]);
});
默认路由似乎是在您调用router.navigate()
之后发生的,因此不会生效
我确信有更好的方法来达到同样的效果,而不是setTimout()
,但我认为可以演示这个问题
例如,这将导致相同的行为
RouterModule.forRoot([
{ path: "", redirectTo: '/sample1/2', pathMatch: 'full' }
{ path: "sample1/:param1", component: Sample1Component },
{ path: "**", component: HomeComponent }
])
你也可以使用
canActivate
guard作为默认路由,并在那里执行router.navigate()
。你太快了,我正要写同样的东西:)很好,抱歉;-)我已经发布了超过5000个答案。实践造就大师。只要不要放弃。@GünterZöchbauer:谢谢你的回答和不懈的支持!你帮了我好几次!