Моему приложению нужны некоторые значения конфигурации при запуске приложения. Предложения сообщества заключаются в том, чтобы хранить их как константы в виде отдельного модуля, предпочтительно в отдельном файле .js. Это может сработать для меня.
Однако мои значения конфигурации также хранятся на сервере и не хотят дублировать их на стороне клиента, поэтому я подумал о вызове сервера, чтобы получить их.
Я новичок в angular, допустима ли практика проектирования для вызова сервера в методе конфигурации модуля? Если да, то должен ли я просто использовать службу $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}');
и как тогда мне прочитать значения в методе конфигурации?
var main = angular.module('myapp',['myconfig']);
main.config(['CONFIGOBJECT',function(CONFIGOBJECT){
?? How do I read CONFIGOBJECT value that is a string not json object?
})
{Const1: "someValue", ...}
, а не'{Const1: "someValue", ...}'
- person JB Nizet   schedule 20.04.2016