Mon application a besoin de valeurs de configuration au démarrage de l'application. Suggestions de la communauté est de les stocker aussi constante que le module séparé, de préférence dans un fichier .js séparé. Cela pourrait fonctionner pour moi.
Cependant mes valeurs de configuration sont également stockées sur le serveur, et ne veulent pas dupliquer celles du côté client, donc je pensais à faire un appel de serveur pour les obtenir.
Im novice à angulaire, est-ce une pratique de conception valide pour faire appel du serveur dans la méthode de configuration du module? Si oui, devrais-je simplement utiliser le service $ http pour obtenir les valeurs du serveur?Comment obtenir les valeurs de configuration du serveur dans Angular?
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
}]);
EDIT1
Donc, en fonction des suggestions ci-dessous, je vais avec la déclaration approche constante. Fondamentalement, je vais avoir un fichier config.js séparé et pendant le processus de déploiement, je vais écraser le fichier config.js avec le fichier config.js basé sur l'environnement respectif.
Question
Si 10 ont des constantes alors je dois les transmettre séparément à module.config(). Est-il possible de déclarer la valeur constante en tant qu'objet JSON et en quelque sorte le lire dans la fonction de configuration, donc je n'ai pas passer 10 paramètres différents?
angular.module('myconfig', [])
.constant('CONFIGOBJECT','{Const1:somevalue,Const2:somevalue,Const3:somevalue,Const4:somevalue}');
puis comment lire les valeurs dans la méthode de configuration?
var main = angular.module('myapp',['myconfig']);
main.config(['CONFIGOBJECT',function(CONFIGOBJECT){
?? How do I read CONFIGOBJECT value that is a string not json object?
})
Une constante n'a pas besoin d'être une chaîne. Cela peut être n'importe quoi. Supprimez les guillemets autour de la valeur: '{Const1:" someValue ", ...}' et non "{Const1:" someValue ", ...} '' –