首页 > 解决方案 > 为什么要在 app.module.ts 中导入 { HttpClientModule }

问题描述

我一直在努力创建一个服务来发出 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')
  }
}

由于我在 app.module.ts 的 providers 数组中注入了 DataService 的依赖关系,所以我不明白为什么我需要在 app.module.ts 中再次导入 HttpClientModule

标签: javascriptangularangular6

解决方案


您应该研究角度模块的工作原理。您的 app.module.ts 包含 AppModule 这是一个根模块。每个应用程序至少有一个模块,即根模块。如果您在 AppModule 中导入任何模块,则应用程序的每个组件都可以访问其(导入的模块)组件。

这就是为什么让 HttpClient 在应用程序中“无处不在”可用的原因:

在 AppModule 中导入 HttpClientModule。现在您可以在自己的服务或组件中使用定义在 HttpClientModule 中的服务、组件等。


推荐阅读