Ho scritto un modulo in angularJS che incapsula tutte le comunicazioni di backend. Per maggiore flessibilità ho il prefisso api come valore costante sul modulo (potrebbe essere valore dato che non lo sto usando nella fase di configurazione). così qualcosa comeIl modo migliore per sovrascrivere valori/costanti del modulo in angularJS
angular.module('myapp.data').constant('apiPrefix', '/api/data');
Ora voglio usare questo modulo da due applicazioni diverse. Uno usa/api1/data e l'altro/api2/data e vorrei cambiarlo durante la fase di configurazione dell'applicazione. So come farlo con un provider, ma avere un provider in possesso di un valore mi sembra eccessivo. Posso modificare costanti o valori dei moduli usati dalla fase di configurazione dell'applicazione?
qualcosa di simile:
angular.module("data", [])
.value('apiPrefix', '/api/data')
.factory('display', function(apiPrefix){
return {
pref: function(){
console.log(apiPrefix);
return apiPrefix;
}
}
});
angular.module("myApp",['data'])
.config(['apiPrefix', function(prefix){
prefix = 'https:/api/data';
}])
.controller("Example", function($scope, display) {
$scope.prefix = display.pref;
});
Non sono sicuro, ma puoi provare a farlo nella fase 'run'. – Chandermani
Sì, puoi aggiornare un valore in fase di esecuzione e puoi inserire una costante in config ma poiché è una costante non può essere modificata http://stackoverflow.com/questions/13035568/angular-js-value-not -injected-in-config – shaunhusain
Quindi quello che stai dicendo è che dovrebbe essere un valore invece di una costante nel modulo e modificarlo in fase di esecuzione dell'applicazione invece della configurazione? – masimplo