在 Angular 7 中检测到循环依赖

Pri*_*hra 5 angular-services angular-ngmodel angular-module angular

我的 Angular 7 应用程序中有以下应用程序结构:

AppModule
DashboardModule
  DashboardChild1
  DashboardChild2
  DashboardChild3
  DashboardService
AdminModule
  AdminChild1
  AdminChild2
  AdminChild3
Run Code Online (Sandbox Code Playgroud)

我想有只在DashboardService DashboardModule,所以我跟着这个链接providedin-和ngmodules

这是我的DashboardService

import { Injectable } from '@angular/core';
import { DashboardModule } from './dashboard.module';

@Injectable({
  providedIn: DashboardModule
})
export class DashboardService {
  .......
}
Run Code Online (Sandbox Code Playgroud)

我在 DashboardChild1 组件中使用了该服务,但出现以下错误:

检测到循环依赖项中的警告:src/app/dashboard/dashboard-child1/dashboard-child1.component.ts -> src/app/dashboard/dashboard.service.ts -> src/app/dashboard/dashboard.module.ts - > src/app/dashboard/dashboard-routing.module.ts -> src/app/dashboard/dashboard-child1/dashboard-child1.component.ts

检测到循环依赖项中的警告:src/app/dashboard/dashboard-routing.module.ts -> src/app/dashboard/dashboard-child1/dashboard-child1.component.ts -> src/app/dashboard/dashboard.service。 ts -> src/app/dashboard/dashboard.module.ts -> src/app/dashboard/dashboard-routing.module.ts

检测到循环依赖项中的警告:src/app/dashboard/dashboard.module.ts -> src/app/dashboard/dashboard-routing.module.ts -> src/app/dashboard/dashboard-child1/dashboard-child1.component。 ts -> src/app/dashboard/dashboard.service.ts -> src/app/dashboard/dashboard.module.ts

检测到循环依赖项中的警告:src/app/dashboard/dashboard.service.ts -> src/app/dashboard/dashboard.module.ts -> src/app/dashboard/dashboard-routing.module.ts -> src/app /dashboard/dashboard-child1/dashboard-child1.component.ts -> src/app/dashboard/dashboard.service.ts

我在这里错过了什么?

Der*_*ğlu 5

这是最有可能发生的,因为

DashboardChild1 是 DashboardModule 的成员,DashboardChild1 试图通过可注入的方式访问 DashboardModule。结果是循环依赖。

DashboardModule calls DashboardChild1 
DashboardChild1 calls DashboardModule
DashboardModule class DashboardChild1
DashboardChild1 calls DashboardModule
...
...
...
...
Run Code Online (Sandbox Code Playgroud)

这同样适用于 DashboardService

DashboardModule calls DashboardChild1 calls DashboardService
DashboardService calls DashboardModule
DashboardModule calls DashboardChild1 calls DashboardService
DashboardService calls DashboardModule
...
...
...
...
Run Code Online (Sandbox Code Playgroud)