Angular 5:Resolve guard取消正在进行的导航

时间:2018-03-13 23:58:18

标签: angular angular-ui-router angular-router

我有以下路线:

{
    path: 'profile',
    component: ProfileComponent,
    canActivate: [AuthGuard],
    resolve: {
        profile : ProfileResolve,
    }
}

这是我的解析器代码:

public resolve(route: ActivatedRouteSnapshot,
               state: RouterStateSnapshot) : Observable<UserProfile | number> {

    const userid = this.auth.getUserId();
    return this.ps.getProfile(userid).take(1).map(
        profile => profile).catch(errorCode => Observable.of(errorCode));
}

我的AuthGuard,在成功验证后,调用router.navigate(['/profile'])恢复导航,此时我看到旋转变压器防护已激活。 但问题是解析器似乎导致导航被取消。当我打开路由器跟踪器时,我发现分辨率已经发生(并且我已经验证了已解析的数据是否正确),但即使数据已解析,导航也会被取消,如屏幕截图所示。我做错了什么?

enter image description here

0 个答案:

没有答案