在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常量這樣的工具來解決打包問題...... –
也有一些是工作正在進行由角團隊發佈「很快」。 –