在Angular 2应用程序或JavaScript应用程序中,通过外部化字符串常量的批准方式是什么?我的意思是像Java中的.properties
文件,其中存储后端连接属性。Angular 2外部化(属性文件)
据我所知,JavaScript不支持轻松地从客户端读取文件。我目前的解决方案是使用注入服务类,它将键值对存储为对象属性。然后,我只是将服务注入其他需要这些值的服务中。这是合理的方法,还是JavaScript/A2提供了更统一的方式来处理值注入?
在Angular 2应用程序或JavaScript应用程序中,通过外部化字符串常量的批准方式是什么?我的意思是像Java中的.properties
文件,其中存储后端连接属性。Angular 2外部化(属性文件)
据我所知,JavaScript不支持轻松地从客户端读取文件。我目前的解决方案是使用注入服务类,它将键值对存储为对象属性。然后,我只是将服务注入其他需要这些值的服务中。这是合理的方法,还是JavaScript/A2提供了更统一的方式来处理值注入?
我认为要做的是正确的。
您可以在您的请求完成后异步引导。下面是一个示例:
var app = platform(BROWSER_PROVIDERS)
.application([BROWSER_APP_PROVIDERS, appProviders]);
var service = app.injector.get(ConfigService);
service.getConfig().flatMap((config) => {
var configProvider = new Provider('config', { useValue: config });
return app.bootstrap(appComponentType, [ companiesProvider ]);
}).toPromise();
看到这个问题:
我看到另一种方法,如果你能够在更新index.html
页面(主入口点)服务器端。下面是一个示例:
<script>
var params = {"token": "@User.Token", "xxx": "@User.Yyy"};
System.import('app/main').then((module) => {
module.main(params);
});
</script>
看到这个问题:
你也可以注册一个APP_INITIALIZER
提供商这样的:
provide(APP_INITIALIZER, {
useFactory: (service:ConfigService) =>() => service.loadConfig(),
deps:[ConfigService, HTTP_PROVIDERS],
multi: true}),
看到这个问题了更多细节:
如此冗长的执行最简单的任务。 Angular 2的代码似乎最终难以维护,我希望它们能够随着时间的推移调整惯例而不是配置方法 –
是的,或许这将会更容易使用像ng常量这样的工具来解决打包问题...... –
也有一些是工作正在进行由角团队发布“很快”。 –