1
我想覆盖Http
自定义类,说HttpClient
做一些操作之前请求和响应后,但我不想记得导入该类而不是平台http类。Angular 2 - 使用“多”提供程序来覆盖Http
我一直在尝试通过'多'提供程序来做到这一点,但我不能完全点击它。
这里是我的替代类:
import {Injectable} from '@angular/core';
import {Http, Headers} from '@angular/http';
@Injectable()
export class HttpClient {
private http: Http;
constructor(http: Http) {
this.http = http;
}
get(url) {
let headers = new Headers();
doSomethingToHeader(headers);
return this.http.get(url, {
headers: headers
});
}
}
这是我的main.ts
bootstrap(AppComponent, [
provide(HTTP_PROVIDERS, {useExisting: HTTP_PROVIDERS, multi: true}),
provide(HTTP_PROVIDERS, {useClass: HttpClient, multi: true})
]);
但是,当我尝试调用http.get()在我的应用程序,我得到
ORIGINAL EXCEPTION: No provider for Http!
有没有想法?我是否以这种错误的方式去做?
谢谢!
UPDATE
我发现这个blog post。它几乎描述了Gunter在下面描述的内容。我接受他的回答。
我试过了,但我得到了循环依赖。在你声明这样的提供者之后,是否有一种特殊的方式需要导入它以在服务/组件中使用this.http.get()? –
请提供更多详情。什么是确切的错误信息? –
原始异常:无法实例化循环依赖! (Http - > Http) –