Meine Anwendung benötigt beim Start der Anwendung einige Konfigurationswerte. Vorschläge aus der Community sind, sie so konstant wie ein separates Modul zu speichern, vorzugsweise in einer separaten .js-Datei. Das könnte für mich funktionieren.
Allerdings sind meine Konfigurationswerte auch auf dem Server gespeichert und wollen diese nicht auf der Client-Seite duplizieren, also dachte ich daran, Server-Aufruf zu machen, um diese zu bekommen.
Im Anfänger zu eckig, ist es gültige Design-Praxis, Server-Aufruf in Modul Config-Methode zu machen? Wenn ja, sollte ich einfach $ http Service verwenden, um die Werte vom Server zu bekommen?Wie erhalten Sie Config-Werte vom Server in 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
Vorschläge So basiert unter ich erklärt konstanten Ansatz werde. Grundsätzlich werde ich eine separate config.js-Datei haben und während des Deployment-Prozesses überschreibe ich die Datei config.js mit der entsprechenden, auf der Umgebung basierenden Datei config.js.
Frage
Wenn dann auf 10 Konstanten haben, ich habe sie(), um module.config separat zu übergeben. Ist es möglich, einen konstanten Wert als JSON-Objekt zu deklarieren und irgendwie in der Config-Funktion zu lesen, so dass ich 10 verschiedene Parameter nicht habe?
angular.module('myconfig', [])
.constant('CONFIGOBJECT','{Const1:somevalue,Const2:somevalue,Const3:somevalue,Const4:somevalue}');
und wie lese ich dann die Werte in der Config-Methode?
var main = angular.module('myapp',['myconfig']);
main.config(['CONFIGOBJECT',function(CONFIGOBJECT){
?? How do I read CONFIGOBJECT value that is a string not json object?
})
Eine Konstante muss keine Zeichenkette sein. Es kann alles sein. Entferne die Anführungszeichen um den Wert: '{Const1:" someValue ", ...}' und nicht ''{Const1:" someValue ", ...}' –