Javascript 如何将环境配置注入不同的角度模块?
我的angular应用程序中有一个app.config.ts,看起来像这样:Javascript 如何将环境配置注入不同的角度模块?,javascript,angular,Javascript,Angular,我的angular应用程序中有一个app.config.ts,看起来像这样: export const APP_CONFIG = { .... } 这是在网页包生成时生成的 现在我有了不同的angular模块,它们位于单独的存储库中,我的angular应用程序正在使用这些存储库。其中一些模块还需要app.config.ts中定义的环境配置。我正在使用NPM安装这些模块,因此可以在node\u modules文件夹中找到它们 我的问题是,如何向这些模块提供环境配置,而不创建对应用程序本身的
export const APP_CONFIG = {
....
}
这是在网页包生成时生成的
现在我有了不同的angular模块,它们位于单独的存储库中,我的angular应用程序正在使用这些存储库。其中一些模块还需要app.config.ts中定义的环境配置。我正在使用NPM安装这些模块,因此可以在node\u modules
文件夹中找到它们
我的问题是,如何向这些模块提供环境配置,而不创建对应用程序本身的依赖关系
我正在考虑将配置保存到一个全局变量,或者在应用程序的引导过程中将其保存到localStorage
我还应该在每个模块上创建环境配置吗?然后在网页包构建中处理它
如果您有任何想法,我将不胜感激。如果我理解您的问题,您需要将配置信息从主应用程序传递到您自己的外部库。您可以使用Angular文档中解释的forRoot方法来实现这一点 在外部角度库内部,修改导出的主模块,使其具有以下结构:
export class MyLibraryModule {
static forRoot(config: configData): ModuleWithProviders {
return {
ngModule: MyLibraryModule,
providers: [
{provide: AppConfigModel, useValue: config }
]
};
}
constructor(@Optional() config: AppConfigModel) {
if (config) { /* Save config data */ }
}
}
将此模块导入应用程序时,请使用forRoot静态方法并传入配置数据。您需要在库中创建适当的模型(在我的示例中为AppConfigModel),以接收传入forRoot方法的APP_配置
imports: [
MyLibraryModule.forRoot(APP_CONFIG),
]
谢谢你。我现在就试试这个解决方案。我会尽快回复你的result@PrinceG你能把你的解决方案贴出来吗?我正在学习Angular,可以使用一些完整解决方案的示例来完成您发布的这件事。@Elijah我根据这里的示例创建了我的解决方案,我将抽出时间发布我的实际解决方案