无法解析所有参数。在Angular 6中注入要服务的窗口

时间:2018-11-21 16:34:30

标签: javascript angular dependency-injection

我正在尝试使用window.location.hostname在我的应用中实现拦截器。

在我的app.module文件中,我正在提供此文件:

providers: [
 AuthGuard,
 AlertService,
 AuthenticationService,
{ provide: Window, useValue: window },
 ...

然后我有一个名为api.interceptor.ts的服务,看起来像这样:

@Injectable()
export class APInterceptor implements HttpInterceptor {

private window: Window;
private location: string;

constructor(@Inject(Window) private _window: any){
    this.window = _window as Window;
    this.location = this.window.location.hostname;
    console.log('You are here: ', this.location);
}

intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

应用程序中的所有内容都可以正常运行(我可以正确找到位置),但是当我尝试进行量产(使用ng build --configuration=production时,会出现一个通配错误!:

ERROR in : Can't resolve all parameters for APInterceptor in /Users/foo/Desktop/my_project/src/app/_helpers/api.interceptor.ts: (?)

我已经安装并使用Madge来检查循环依赖关系,但是没有找到,因此我迷路了……

感谢您的帮助!

0 个答案:

没有答案