我想扩展现有的角度服务(在此示例中为Http
)。
要求:
Http
,以便不需要更改现有代码。 DI注入"装饰" Http
。Http
"装饰" SecureHttp
和LoggingHttp
。到目前为止我累了多少:
SecureHttp implements Http
似乎不起作用,因为1. Http
没有界面,2。它保护了需要实施的成员扩展Http
class SecureHttp extends Http {
constructor(_backend: ConnectionBackend, _defaultOptions: RequestOptions, private _http: Http){
super(_backend, _defaultOptions);
}
get(url: string, options?: RequestOptionsArgs): Observable<Response> {
console.log("This is secure Http.");
return this._http.get(url, options);
}
...
}
但我不知道如何提供服务,因此Http
会SecureHttp
注入Http
,SecureHttp
Http
注入model
}。
我是否走在正确的轨道上?
还是在angular2中还有其他概念可以扩展我不知道的现有服务吗?
答案 0 :(得分:0)
对于这个特定问题,有一个新的HttpClient解决方案,您可以使用HttpInterceptor来扩展请求,然后再发送请求。
可以在medium.com上找到带有说明的文章。