angular - Angular 环境循环依赖
问题描述
如文档所述,我使用多个environment
文件来参数化应用程序启动。
environment.prod.ts
:
export const environment = {
production: true,
module: ProductionModule,
baseUrl: ...
}
environment.ts
:
export const environment = {
production: false,
module: DevelopmentModule
}
在里面ProductionModule
,我想从environment
模块中“获取”一个远程 API URL。
@NgModule({
declarations: [],
imports: [
LoggerModule.forRoot({ level: NgxLoggerLevel.ERROR })
],
providers: [
...
{ provide: API_BASE_URL, useValue: environment.baseUrl }
]
})
export class ProductionModule {}
但是,这会产生Circular dependency
错误。
解决这个问题的正确方法是什么?
解决方案
您不必使用providers
nor 模块从environment
.
只需environment.baseUrl
在代码中真正需要它的地方导入即可。
import { environment } from '../../environments/environment';
在代码中
environment.baseUrl
这将使您免于循环依赖(我的意思是在您的情况下 - 不是一般情况),并且在环境文件中看到 ANY MODULE 对我来说是一种代码味道。
推荐阅读
- c++ - 按索引访问变体元素:文档告诉我什么?
- org-mode - 如何使议程视图显示明天或前几天截止的任务?
- .net - 我应该使用哪个编程平台来使用 WS-Security 的 SOAP 服务?
- database - 格式掩码在 Oracle APEX 中如何工作?
- ansible - Puppet Bolt 是否具有与 Red Hat Ansible 相同的功能集?
- java - 将 install4j 与 proguard 一起使用
- python - 如何使用 Python 脚本在 Linux 操作系统中启动裸 X 服务器(X -retro &)?
- php - 如何为fincode的每个方案从表中删除数据
- java - 如何在 Spring Boot 中正确连接表
- sorting - 在 Excel-Dna 中对 Excel“变体”进行排序的 F# 函数