私のアプリケーションには、アプリケーションの起動時にいくつかの設定値が必要です。コミュニティからの提案は、それらを別のモジュールとして、できれば別の .js ファイルに定数として保存することです。これは私にとってはうまくいくかもしれません。
ただし、構成値もサーバーに保存されており、クライアント側でそれらを複製したくないため、サーバー呼び出しを行ってそれらを取得することを考えていました。
モジュールの構成メソッドでサーバーを呼び出すことは有効な設計慣行ですか? はいの場合、サーバーから値を取得するために $http サービスを使用する必要がありますか?
var main = angular.module('myapp', ['AdalAngular']);
main.config(['$stateProvider',$httpProvider, adalAuthenticationServiceProvider', function ($stateProvider,$httpProvider,adalProvider) {
// $stateProvider configuration goes here
// ?????CAN I make server call here to get configuration values for adalProvider.init method below???
adalProvider.init(
{
instance: 'someurl',
tenant: 'tenantid',
clientId: 'clientid',
extraQueryParameter: 'someparameter',
cacheLocation: 'localStorage',
},
$httpProvider
);
}]);
main.run(["$rootScope", "$state", .....
function ($rootScope, $state,.....) {
// application start logic
}]);
main.factory("API", ["$http", "$rootScope", function ($http, $rootScope) {
// API service that makes server call to get data
}]);
編集1
したがって、以下の提案に基づいて、一定のアプローチを宣言します。基本的に、個別の config.js ファイルを用意し、デプロイ プロセス中に config.js ファイルをそれぞれの環境ベースの config.js ファイルで上書きします。
質問
10 個の定数が必要な場合は、それらを個別に module.config() に渡す必要があります。定数値をJSONオブジェクトとして宣言し、何らかの方法で構成関数で読み取ることは可能ですか?10個の異なるパラメータを渡す必要はありませんか?
angular.module('myconfig', [])
.constant('CONFIGOBJECT','{Const1:somevalue,Const2:somevalue,Const3:somevalue,Const4:somevalue}');
次に、config メソッドで値を読み取るにはどうすればよいですか?
var main = angular.module('myapp',['myconfig']);
main.config(['CONFIGOBJECT',function(CONFIGOBJECT){
?? How do I read CONFIGOBJECT value that is a string not json object?
})