angular 4 中的循环依赖

Circular dependency in angular 4

每当我 运行 我的项目时,我都会收到以下警告:

Circular dependency detected: src/app/Dashboard/dashboard.module.ts -> src/app/Dashboard/finance.service.ts -> src/app/Dashboard/dashboard.module.ts

在我的 finances.service 中,我有一个创建 "Statistics" 类型对象的函数,它是我在 dashboard.module

上定义的 class

dashboard.module

export class Stadistics {
  mod: number;
  min: number;
  max: number;
}

finance.service

 getStatistics(array: Array<number>) {
    const stats = new Statistics;
    stats.max = 0;
    stats.min = 0;
    stats.mod = 0;
}

我也试过使用:const stats: Statistics = new Statistics;但我一直收到同样的警告。知道为什么会这样吗?

这种情况下的标准方法是将导致循环依赖的声明移动到单独的源文件中。所以,它可能看起来像这样:

statistics.class.ts

export class Statistics {
    mod: number;
    min: number;
    max: number;
}

finance.service.ts

import {Statistics} from './statistics.class';
....
....
....
getStatistics(array: Array<number>) {
    const stats = new Statistics();
    stats.max = 0;
    stats.min = 0;
    stats.mod = 0;
}

dashboard.module.ts

import {Statistics} from './statistics.class';

// use it here where you need it.

当然,您需要非常仔细地考虑如何拆分您的来源,这样才有意义。