循环依赖,如何摆脱

circular dependency, how to get rid

我试图在 stackblitz 中重现该问题,但我在 blitz 中没有收到警告..

基本上,

my-module.module.ts导入一个组件,所以依赖

import { MyComponentComponent } from './my-component/my-component.component';

组件,使用服务

import { MyServiceService } from '../my-service.service';

该服务有

@Injectable({
  providedIn: MyModuleModule
})

所以取决于模块

import { MyModuleModule } from './my-module.module';

它对我来说看起来是循环的,但是在我的应用程序中我有警告的地方,我在 stackblitz 中没有。

这是正确的实施方式吗?

修复方法是删除

@Injectable({
  providedIn: MyModuleModule
})

但这是否使我的服务在每个模块中都提供?或者 none 个?

只做服务

providedIn: 'root'

需要在某处提供服务,否则依赖注入不知道从哪里获取实例。摆脱 providedIn: MyModuleModule 时,将其添加到依赖项的构造函数列表时会出错。 providedIn: 'root' 表示不需要添加到任何模块中。