2016-06-07 73 views
5

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

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

+1

也有一些是工作正在进行由角团队发布“很快”。 –

回答

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

看到这个问题了更多细节:

+1

如此冗长的执行最简单的任务。 Angular 2的代码似乎最终难以维护,我希望它们能够随着时间的推移调整惯例而不是配置方法 –

+0

是的,或许这将会更容易使用像ng常量这样的工具来解决打包问题...... –