Javascript 从组件的OnInit调用Angular 2路由器时无法导航

Javascript 从组件的OnInit调用Angular 2路由器时无法导航,javascript,angular,typescript,Javascript,Angular,Typescript,我正在构建一个测试门户,学生可以在其中进行测试,因此,我从一个服务获取完整的测试,然后根据测试状态(暂停或首次启动)转到问题或说明组件 如果我将我的this.router.navigate代码放在settimeout中,即使超时为0,它也可以正常工作和导航,但它在那里不工作 我查看了路由器的代码,但似乎找不到任何关于如何处理这个问题以及为什么它不能正常导航的详细信息的帮助。 这是angular2的最终版本 TL;博士 this.route.navigate在组件的OnInit上不起作用 @角度/

我正在构建一个测试门户,学生可以在其中进行测试,因此,我从一个服务获取完整的测试,然后根据测试状态(暂停或首次启动)转到问题或说明组件

如果我将我的
this.router.navigate
代码放在
settimeout
中,即使超时为0,它也可以正常工作和导航,但它在那里不工作

我查看了路由器的代码,但似乎找不到任何关于如何处理这个问题以及为什么它不能正常导航的详细信息的帮助。 这是angular2的最终版本

TL;博士
this.route.navigate
在组件的
OnInit
上不起作用

@角度/路由器:3.0.0

@角度/普通:2.0.0

我的问题是,在初始导航结束之前,我试图导航到另一个url。将这一行放到app.routing.ts解决了问题


为什么要使用路由器而不是加载问题的问题组件或加载指令的指令组件,基于ngSwitch?嗯,有多个部分和问题。还有一个问题列表,单击所选问题的组件将其设置到路由器出口。因此,我根据路由管理要初始化的问题。我希望这在一定程度上回答您的问题。
  RouterModule.forRoot(appRoutes, { initialNavigation: false });