Angular 2外化(属性文件)

时间:2016-06-07 13:41:01

标签: javascript html angularjs build angular

在Angular 2应用程序或JavaScript应用程序中,批准的外部化字符串常量的方法是什么?我的意思是Java中的.properties文件,其中存储了后端连接属性。

据我所知,JavaScript并不支持轻松地从客户端读取文件。我目前的解决方案是使用可注入服务类,它将键值对存储为对象属性。然后我只是将服务注入需要这些值的其他服务中。这是合理的方法,还是JavaScript / A2提供了一些更统一的方法来处理值注入?

1 个答案:

答案 0 :(得分:0)

我认为这样做的方法是正确的。

在您的请求完成后,您可以异步引导。这是一个示例:

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}),

有关详细信息,请参阅此问题: