1
我想添加一些功能給Http,當用戶得到403它刪除他的用戶信息並重定向到登錄。 AuthHttp的例子可以在下面看到。使用服務裏面的服務
@Injectable()
export class AuthHttp {
constructor(
private http: Http,
private router: Router,
private authService: AuthService
) { }
get(url: string, options?: RequestOptionsArgs): Observable<any> {
return this.http.get(url, options)
.catch(this.errorHandler);
}
errorHandler(error: any): Observable<any> {
if (error.status === 403) {
console.error('TOKEN EXPIRED!');
this.authService.logout();
let link = ['/login'];
this.router.navigate(link);
}
return Observable.throw(error);
}
}
的問題是,我會收到以下錯誤:
EXCEPTION: this.authService is undefined
,我不知道怎麼去解決,因爲我試圖用一個服務中的服務。我在下面的提供商內部添加了AuthService
providers: [
...,
AuthService
]
路由器會拋出類似的錯誤。
我想我在某個地方犯了一個大錯誤,而不僅僅是一個背景問題。謝謝! –