angular - Angular 4 中的循环依赖

标签 angular service module warnings circular-dependency

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

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中定义的类

仪表板模块

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

金融服务

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

我还尝试使用:const stats:Statistics=newStatistics;但我不断收到同样的警告。知道为什么会发生这种情况吗?

最佳答案

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

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.

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

关于angular - Angular 4 中的循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46379824/

相关文章:

javascript - 如何在动态加载的 Typescript 中扩展类

Angular2 异常 : No provider for e! (e -> e)

android - 应用程序无响应 (ANR) 正在执行服务 android

python - 安装模块时无模块错误

angular - 在 Angular6 中导入 ngrx 效果

CSS 在我的 Angular 组件中不起作用

android - ServiceConnection::onServiceConnected 没有被调用,即使 Context::bindService 返回 true?

apache - 组件服务中的 Solr 显示已暂停且无法在 Windows 上启动

perl - 为什么 cpanm 不安装依赖项?

Python-将全局变量分配给函数返回需要函数是全局的吗?