我想将Angular Router注入我的HttpInterceptor。不幸的是,浏览器控制台中抛出以下错误:
TypeError:this.router未定义
我像往常一样将它添加到我的构造函数中:
constructor (private router: Router) {
}
另外,我在app.module.ts中的providers数组中执行了以下操作:
{
provide: HTTP_INTERCEPTORS,
useClass: MyService,
multi: true,
deps: [Router]
}
我想在我的错误处理程序中的if语句中使用当前url来为不同的路由提供特定的功能:
myErrorHandler(error: HttpErrorResponse) {
if (this.router.url === 'test') {
// do something
} else {
return throwError(error).pipe(
// do something
);
}
}
我究竟做错了什么?
你做过这个吗?太明显了?
import { Router } from "@angular/router";
您可以尝试使用注射器。
constructor(inj: Injector) {
this.router = inj.get(AuthService) }
您应该注意,无法导入包含httpClientModule的服务以避免循环依赖。