我有这种情况:
到目前为止,这是我的登录组件:
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,所以我只是将其放入主题中,并在需要的位置进行订阅。