Angular2扩展服务

时间:2017-04-11 12:28:51

标签: angular typescript

我想扩展现有的角度服务(在此示例中为Http)。

要求:

  • 服务扩展通过角度依赖注入处理
  • 应该可以多次扩展服务(例如以Decorator Pattern允许的方式)
  • 生成的对象必须实现(如果可能)或扩展Http,以便不需要更改现有代码。 DI注入"装饰" Http
  • 一个可能的用例是Http"装饰" SecureHttpLoggingHttp

到目前为止我累了多少:

  • 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);
      }
    ...
    }
    

    但我不知道如何提供服务,因此HttpSecureHttp注入HttpSecureHttp Http注入model }。

我是否走在正确的轨道上?

还是在angular2中还有其他概念可以扩展我不知道的现有服务吗?

1 个答案:

答案 0 :(得分:0)

对于这个特定问题,有一个新的HttpClient解决方案,您可以使用HttpInterceptor来扩展请求,然后再发送请求。

可以在medium.com上找到带有说明的文章。