角度 2:存储配置设置的策略



我正在使用角度CLI来创建angular2项目。我正在使用 json 文件来存储一些可配置的设置,例如 api 端点等CLI 捆绑所有文件,因此 json 文件不会单独部署在 dist 文件夹中。这是一个问题,因为部署后无法更改这些设置。通常用于将此类设置存储在无需重新部署即可编辑的 angualr 应用程序中的策略是什么?类似于web.config或app.config的东西。

有一个文件夹config其中包含所有运行时环境配置 需要将此文件夹添加到"assets" .angular-cli.config.数组中

除了需要创建一个表示应用程序设置的类之外,可以调用该AppSettings

然后修改您的main.ts,使其如下所示:

fetch(configUrl, { method: 'get' })
.then((response) => {
  response.json()
    .then((data: any) => {
      if (environment.production) {
        enableProdMode();
      };
      platformBrowserDynamic([{ provide: AppSettings, useValue: new AppSettings(data.config) }]).bootstrapModule(AppModule);
    });
});

configUrl将包含您的配置文件 URL,例如/config/dev.json
这样,配置将通过fetch API获取,并且在应用程序引导时,将自动创建您的AppSettings

您必须将AppSettings注入任何您想要使用它的地方。

有关更多详细信息,请查看此答案

在angular-cli.json中将文件条目添加到资产会将其原样复制到dist文件夹。

"assets": [ "assets", "fav.ico", "settings.json" ]

最新更新