Angular - 无法解析HttpService的所有参数:([object Object],?,?)

时间:2018-04-02 15:50:48

标签: angular service constructor

我创建了一个HttpService来处理对后端的http请求,这个服务将其方法继承到其他服务,这些服务通过构造函数为后端提供端点。

到目前为止,在本地机器上进行测试时,到目前为止我还没有遇到任何问题。只有在为prod构建时才会出现此错误。

这是HttpService:

import { Injectable } from '@angular/core';
import { Http, Response, RequestOptions, Headers, ResponseContentType } from '@angular/http';

import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
import 'rxjs/add/observable/throw';
import { Observable } from 'rxjs/Observable';

import { backendURL } from './../../../environments/environment';

@Injectable()
export class HttpService {
  protected url:   string;
  protected token: string;

  constructor(
    protected http:         Http,
    protected endpoint:     String,
    private parentEndpoint: String
  ) {
    this.url = backendURL;
    this.token = '?token=' + localStorage.getItem('token');
  }
    .
    .
    .
}

以及如何将其继承到其他服务的示例:

import { Http } from '@angular/http';
import { Injectable } from '@angular/core';

import { HttpService } from './../http/http.service';

@Injectable()
export class CourseService extends HttpService {
  constructor(http: Http) { super(http, '/endpoint', '/parentEndpoint/'); }
}

我不确定我在这里错过了什么?我看到其他帖子中这个错误是由循环依赖引起的,但我不认为这是在这里的情况,除非我错过了明显的错误。

1 个答案:

答案 0 :(得分:0)

正如评论中所建议的那样,我将Injectable装饰器带到了类中,但我还必须从AppModule的providers数组中删除HttpService。

这就成了伎俩。