【发布时间】:2019-09-19 07:24:08
【问题描述】:
我想将 Angular 路由器注入到我的 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
);
}
}
我做错了什么?
【问题讨论】:
-
你能提供更多的上下文吗?问题中的代码看起来不错。
-
@Lemon 我已经更新了我的问题。我想在我的拦截器中获取当前路由(url)并在错误处理程序中使用它。
-
@Codehan25 你设法解决了这个问题吗?我在使用相同的设置时遇到了同样的问题。
标签: angular angular-router angular-httpclient angular-http-interceptors angular-httpclient-interceptors