Я разрабатываю угловое приложение, и это приложение имеет около 10 настраиваемых свойств (в зависимости от среды и клиента).
У меня были эти свойства в файлах конфигурации json, но это действительно проблематично: должны быть определенные сборки для каждой env/company. Поэтому я хотел бы получить эти свойства один раз из бэкэнда при загрузке приложения.
Поэтому для этого я создал Provider
var app = angular.module('myApp', [...]);
app.provider('environment', function() {
var self = this;
self.environment;
self.loadEnvironment = function (configuration, $http, $q) {
var def = $q.defer();
$http(...)
.success(function (data) {
self.environment = Environment.build(...);
def.resolve(self.environment);
}).error(function (err) {
...
});
return def.promise;
};
self.$get = function(configuration, $http, $q) {
if (!_.isUndefined(self.environment)) {
return $q.resolve(self.environment);
}
return self.loadEnvironment(configuration, $http, $q);
};
}
app.config(... 'environmentProvider', function(... environment) {
...
//The problem here is that I can't do environment.then(...) or something similar...
//Environment does exists though, with the available functions...
}
Как правильно работать с этим провайдером, который выполняет вызов rest для заполнения своей переменной среды?
Заранее спасибо!
constant
илиvalue
? Я думаю, что это лучший подход. - person lenilsondc   schedule 18.10.2016