【发布时间】:2020-07-20 11:23:51
【问题描述】:
我正在开发一个角度库。它有一个内部服务。定义如下。
使用providedIn 可摇树。并且没有使用providedIn:'root',因为它是内部的,只是在模块范围内使用。
@Injectable({
providedIn: MyChartModule,
})
export class LineChartLibService {
当我想在模块定义中添加forRoot 以在延迟加载中只有一个实例时,它会遇到循环依赖。
export class MyChartModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: MyChartModule,
providers: [LineChartLibService],
};
}
}
在这种情况下我们应该怎么做? 是否可以在库中提供延迟加载的可摇树服务?
WARNING: Circular dependency: dist\my-chart\esm2015\lib\my-chart.module.js -> dist\my-chart\esm2015\lib\line-chart\line-chart.component.js
-> dist\my-chart\esm2015\lib\line-chart-lib.service.js -> dist\my-chart\esm2015\lib\my-chart.module.js
【问题讨论】:
-
可以在这里粘贴圆形路径吗?
-
@GouravGarg。编辑问题并添加警告。
-
请添加整个模块代码,因为似乎还应该有一个 line-chart.component.js 在这里我们看不到。
-
当您将其添加到提供者时:[] 那么为什么要分配 providedIn 呢?
-
@GouravGarg,因为它是可摇树的,也适用于那些没有调用 forRoot 的人。(它是一个库,你不知道它会在哪里使用)
标签: javascript angular typescript lazy-loading tree-shaking