我有基于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('/');
}
);
});
}