从外部文件加载应用程序设置

时间:2018-05-17 14:35:40

标签: angular angular5 settings

我正在开发Angular中的单页应用程序,它将与外部服务连接。但是,我不保证这些服务的路径将保持不变。我的目标是将这些设置保存在外部设置文件中,以便我可以动态更新它们,而无需在每次路径更改时重新编译和重新部署我的应用程序。

在Java中使用.properties文件的Spring框架,它就像

public class RemoteService{
    @Value("${removeservice.address}")
    private String address;

    // Class logic
}

我怎么能用Java做同样的事情?

1 个答案:

答案 0 :(得分:1)

<强> [老]

在angular中你有“环境”文件,可以存储一些数据,比如API的URL,请参阅:

像这个例子一样使用: 在你的src / environments / environment.dev.ts文件中,你可以公开一个const,如:

export const environment = {
    apiUrl: 'http://my-api.domain.com'
}

可以像

一样使用
import { environment } from '../environments/environment';

export class MyService{

    private url = environment.apiUrl;

}

ps:你必须在angular-cli.json

中告诉你环境文件的角度
"apps": [
***
"environmentSource": "environments/environment.ts",
"environments":{
    "dev": "environments/environment.dev.ts"
}
***
}

如果您真的想保留Java语法,可以查找create javascript“decorator”

<强> [EDITED]

我认为没有真正的解决方案,您可以手动完成,避免重建,创建另一个配置文件(不在环境中),并在要初始化的应用程序之前将此配置文件数据加载到服务中在提供服务时使用“APP_INITIALIZER”标记。

您可以在此处找到一个示例:https://stackblitz.com/edit/angular-config-at-runtime

告诉我它是否对你有帮助。

解决方案来自我的同事Jonathan Antoine,而不是我的代码,你可以在这里找到关于它的博客文章(警告它是法语但你可以看到代码):https://blogs.infinitesquare.com/posts/web/angular-ajouter-une-configuration-chargee-au-runtime-post-build-plutot-que-pendant-la-build < / p>