Angular 私有http:HttpClient在构造函数中还是在构造函数外?

Angular 私有http:HttpClient在构造函数中还是在构造函数外?,angular,http,routes,Angular,Http,Routes,如果我使用: private http: HttpClient constructor () { } constructor(private http: HttpClient) { } 我得到错误类型错误:无法读取未定义的属性“post” 如果我使用: private http: HttpClient constructor () { } constructor(private http: HttpClient) { } 我收到未捕获错误:无法解析DataService:(?)的所有参数

如果我使用:

private http: HttpClient
constructor () {
}
constructor(private http: HttpClient) {
}
我得到错误类型错误:无法读取未定义的属性“post”

如果我使用:

private http: HttpClient
constructor () {
}
constructor(private http: HttpClient) {
}
我收到未捕获错误:无法解析DataService:(?)的所有参数

不确定转向何处。

您需要在类定义上方包含“可注入”装饰器。您已导入TypeScript,但未应用于Angular。没有它,您就无法将其他服务“注入”到您的服务中

import { Injectable } from "@angular/core";
// ...

@Injectable({
    providedIn: 'root'
})
export class DataService {
    // ...
}

您需要在service.ts文件中包含可注入的装饰器。确保已在应用程序模块文件中包含HttpClientModule

import { Injectable } from "@angular/core";
import { Observable, BehaviorSubject, concat } from "rxjs";

import { map } from 'rxjs/operators';
import { HttpClient } from '@angular/common/http';
@Injectable({
  providedIn: 'root'
})
export class DataService {


  constructor(private http: HttpClient) {

  }

  private token: string = "";
  private tokenExpiration: Date;
  public store: string = "";
  public user: string = "";

  public login(creds) {
    this.store = creds.strNum;
    this.user = creds.empID;
    return this.http.post("/Account/CreateToken", creds)
      .pipe(map(response => {
        let tokenInfo = response;
        this.token = tokenInfo["token"];
        this.tokenExpiration = tokenInfo["expiration"];

        return true;
      }));
  }

}   

您是否在rootmodule中包含httpclientModule?您需要在类定义上方包含“可注入”修饰符。您已导入TypeScript,但未应用于Angular。没有它,你就无法将其他服务“注入”到你的服务中!啊!谢谢@DavidFontes。如何将您的答案标记为正确?@micronyks谢谢:P我已经添加了答案和解决方案以及代码示例:)