25
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';

import { ClinicFacilityService } from './apiClient.module';


@NgModule({
  imports: [
    CommonModule,
    FormsModule
  ],
  declarations: [
    DailyScheduleComponent,
  ],
  providers: [
    ClinicFacilityService
  ],
  exports: [
    DailyScheduleComponent
  ],
})
export class ClinicDashboardModule {
}

我需要导入ClinicFacilityService在另一个模块(apiClient.module)中声明的

这甚至可能吗,如果不是,为什么不可能。目前我正在ClinicFacilityService像这样导入:

import { ClinicFacilityService } from './api-client-service/clinic-facility.service';
4

2 回答 2

33

将模块添加到导入应该做

import { ApiClientModule } from './apiClient.module';

@NgModule({
  imports: [
    ApiClientModule,
    CommonModule,
    FormsModule
  ],
  declarations: [
    DailyScheduleComponent,
  ],
  exports: [
    DailyScheduleComponent
  ],
})
export class ClinicDashboardModule {
}

否则导入包含服务类的文件

import { ClinicFacilityService } from './clinic-facility.service';

@NgModule() imports和 TypeScript 导入之间有明显的区别。

如果您需要使用类名 ( ClinicFacilityService),则需要该类的 TypeScript 导入。这完全无关@NgModule()

@NgModule({
  ...
  providers: [
    ClinicFacilityService
  ],

如果@NgModule()需要导入,则模块类 ( ApiClientModule) 的类名需要 TypeScript 导入,因为需要传递模块。

@NgModule({
  imports: [
    ApiClientModule,
  ],
  • TypeScript 导入是为了唯一标识一个类。
  • NgModule 导入是为了定义一个模块依赖于另一个模块。
于 2016-11-03T07:38:51.100 回答
2

这是有点旧的帖子,但为了其他人,我觉得这篇文章非常全面并且完全回答了这个问题。提示:请参阅该文章的导入服务部分。

于 2019-11-01T15:36:28.290 回答