解析程序类中的重定向不起作用

时间:2017-09-20 14:27:39

标签: angular

我有基于Angular 4.3.1的应用程序 在这个应用程序中,我有受保护的路由/profile,我试图拒绝使用解析器的未经授权的用户。

我的解析器检查UserService,如果没有用户信息,则应该重定向到主页面。但重定向不起作用。我没有错误,所以我不知道,在这种情况下我能找到什么。

正如我发现的那样,我在Observable.create的箭头函数中丢失了上下文。但接下来有两个新问题:
1.如果this是我呼叫this.router的地方的另一个对象,如果此对象没有{{1},我为什么不会收到任何错误方法?
2.为什么我失去了背景?我在服务中使用相同的方式,它总是没有任何问题,所以它为什么不在这里工作?

有什么想法吗?

navigateByUrl

来自UserService的方法

  public resolve(): Observable<boolean> {
    return Observable.create((observer: Observer<boolean>) => {
      this.userService.getUserInfo().subscribe(
        () => {
          observer.next(true);
          observer.complete();
        },
        () => {
          console.error('Access to this section is denied for the unauthorized users');
          // I see this error, so I'm really here
          this.router.navigateByUrl('/');
        }
      );
    });
  }

0 个答案:

没有答案