Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将环境配置注入不同的角度模块?_Javascript_Angular - Fatal编程技术网

Javascript 如何将环境配置注入不同的角度模块?

Javascript 如何将环境配置注入不同的角度模块?,javascript,angular,Javascript,Angular,我的angular应用程序中有一个app.config.ts,看起来像这样: export const APP_CONFIG = { .... } 这是在网页包生成时生成的 现在我有了不同的angular模块,它们位于单独的存储库中,我的angular应用程序正在使用这些存储库。其中一些模块还需要app.config.ts中定义的环境配置。我正在使用NPM安装这些模块,因此可以在node\u modules文件夹中找到它们 我的问题是,如何向这些模块提供环境配置,而不创建对应用程序本身的

我的angular应用程序中有一个app.config.ts,看起来像这样:

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我根据这里的示例创建了我的解决方案,我将抽出时间发布我的实际解决方案