循环依赖,如何摆脱

时间:2019-04-24 03:29:16

标签: angular dependency-injection angular-providers

我试图在stackblitz中重现该问题,但闪电战中没有警告。

基本上,

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';

对我来说,它看起来像是圆形的,但是在我的应用程序中有警告的地方,我没有出现堆栈闪电问题。

这是正确的实现吗?

一个解决方法是删除

@Injectable({
  providedIn: MyModuleModule
})

但这是否使我的服务在每个模块中提供?还是没有?

1 个答案:

答案 0 :(得分:2)

只需提供服务

providedIn: 'root'

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