我有一个角度(4.2.5)的应用程序,在我的代码中的某些时候,我这样做:
this._appService
.post('/createhero/save', opts)
.subscribe(
(resData: any) =>
{
this._router.navigate(['home']);
}
);
对navigate()
的路由器调用不起作用 - 没有任何反应。我启用了路由调试,这就是我得到的:
因此导航在没有给出理由的情况下被取消。在其他组件中,我有相同类型的navigate()
(一些在可观察的回调中),效果很好。路线/home
也有效。
我开始没有想法了,我甚至不知道为什么navigate()
在这种情况下无效。
答案 0 :(得分:7)
如果出现类似问题,reason
确实无效:)
我的问题是,我尝试导航的路线有一个自己的守卫,它订阅了可观察的,因为我已经给它赋值了,observable的初始值是false
,因为路线是阻止,导航被取消。
可能是其他一些后卫阻止了这条路线而且canActivate()
发出了true
/ false
,这取决于您的查询结果但实际上并没有等待结果?
希望这有助于调试:)