我一直在努力创建服务以发出http请求,因此我正在使用Angular提供的HttpClientModule。我有data.serivce.ts文件,在其中声明了服务,并且正在导入HttpClient,如下所示。
import { Injectable } from '@angular/core';
import { HttpClient} from '@angular/common/http'
@Injectable()
export class DataService {
constructor(private http:HttpClient) {
}
validateLogin(){
return this.http.get('https://someurl')
}
}
由于我将DataService的依赖项注入到app.module.ts的providers数组中,所以我不明白为什么我需要再次在app.module.ts中导入HttpClientModule
答案 0 :(得分:0)
有关您在此行上使用的变量类型信息
constructor(private http:HttpClient)
如果没有该导入,则会出现错误,因为该类型是未知的。
答案 1 :(得分:0)
在Angular文档中,它说HttpClientModule,“为HttpClient配置依赖项注入程序,并为XSRF提供支持服务。”因此,这就是为什么这是使用HttpClient的前提条件。
答案 2 :(得分:0)
您应该研究角度模块的工作方式。您的app.module.ts包含AppModule,它是一个根模块。每个应用程序都有至少一个模块,即根模块。如果您在AppModule中导入任何模块,则应用程序的每个组件都可以访问其(导入的模块)组件。
这就是为什么要使HttpClient在应用程序中“随处可见”的原因:
将HttpClientModule导入AppModule中。 现在,您可以在自己的服务或组件中使用HttpClientModule内部定义的服务,组件等。