如何正确查看路由器的历史

时间:2018-10-01 08:44:51

标签: angular router

我有这种情况:

  • 用户单击链接,例如来自Skype的链接。
  • 用户要访问的网址要求用户登录。
  • 登录后,应将用户重定向到他单击的链接,而不是应用程序的根目录。

到目前为止,这是我的登录组件:

login() {
        this.loading = true;
        this.authenticationService.login(this.model.username, this.model.password)
        .takeWhile(() => this.isAlive)
            .subscribe(result => {
                if (result) {
                    this.router.navigate(['/']);
                } else {
                    this.error = 'Error.';
                    this.loading = false;
                }
            },
            err => {
                this.translation[err.description] ? this.error = this.translation[err.description] : this.error = this.error = err.description;
                this.loading = false;
            })
    }

我不知道如何执行此操作,但是我认为我应该在真实的声明if(result)中查看routerHistory。

如何正确执行此操作?

编辑和解决方案

我终于解决了这个问题。

CanActivate

canActivate(route: ActivatedRouteSnapshot,
        state: RouterStateSnapshot) {
       console.log(state.url);
    }

state.url包含先前的URL,所以我只是将其放入主题中,并在需要的位置进行订阅。

0 个答案:

没有答案