Angular - 路由器导航无理由取​​消

时间:2017-07-07 14:52:42

标签: javascript angular routes angular-routing

我有一个角度(4.2.5)的应用程序,在我的代码中的某些时候,我这样做:

this._appService
    .post('/createhero/save', opts)
    .subscribe(
        (resData: any) => 
        {   
            this._router.navigate(['home']);
        }
    );

navigate()的路由器调用不起作用 - 没有任何反应。我启用了路由调试,这就是我得到的:

Error

因此导航在没有给出理由的情况下被取消。在其他组件中,我有相同类型的navigate()(一些在可观察的回调中),效果很好。路线/home也有效。

我开始没有想法了,我甚至不知道为什么navigate()在这种情况下无效。

1 个答案:

答案 0 :(得分:7)

如果出现类似问题,reason确实无效:)

我的问题是,我尝试导航的路线有一个自己的守卫,它订阅了可观察的,因为我已经给它赋值了,observable的初始值是false,因为路线是阻止,导航被取消。

可能是其他一些后卫阻止了这条路线而且canActivate()发出了true / false,这取决于您的查询结果但实际上并没有等待结果?

希望这有助于调试:)