0

嗨,我是 Angular 4 的新手。我有一个名为“httpService”的服务,它具有 @angular/http 作为依赖项之一,还有其他的,它可以进行错误处理。

现在我有普通类(组件除外)说'Child.ts',它扩展了基类'Base.ts',构造函数在类上设置了一些属性,并使用上面提到的httpService通过rest api从服务器获取数据。

我的整体结构如下所示。

Base.ts
============================================================
export class Base {
  public url: string;
  public httpSvc: HttpService;

  constructor(url) {
    this.url = url;
  }

  public getUrl(): string {
    return this.url;
  }

  public query(reqParams: URLSearchParams): Observable<any> {
    return this.httpSvc.get(this.getUrl(), reqParams);
  }
}

并拥有扩展基类的类。

Child.ts
============================================================
export class Child extends Base {
  first_name: string;
  last_name: string;
  email: string;

  constructor(url: string) {
    super(url);
  }

  getCurrentUser(): Observable<User> {
    return this.httpSvc.get(this.url + 'get-user-profile');
  }
}

这样我就让每个模型都有自己的方法来从服务器获取数据。

现在在这种情况下,我如何使用 httpService,因为它尚未初始化。

请建议我的方式或更好的解决方案。

谢谢

萨蒂什·拉哈尼

4

1 回答 1

0

你需要像这样注入它:

constructor(private http: HttpService)

记得在顶层提供,比如你的 app.module:

providers:[
 HttpService
],
于 2017-09-19T11:17:09.787 回答