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我已经添加了答案和解决方案以及代码示例:)