Мне нужно перевести значение фабрики. эта фабрика получает translateData с сервера. и угловой контроллер вызова функции convertValue. но $ http - это асинхронный метод, поэтому контроллер получает неопределенное значение. потому что http ответ еще не получен.
Интересно, что я могу выполнить заводскую инициализацию полностью (= загрузить данные с сервера) и последовательно создать контроллер.
angular.module("app")
.factory("service", function ($http) {
var allDataMap = {};
$http({
method: 'GET',
url: '/data'
}).then(function (response) {
angular.forEach(response.data.datas, function (value) {
allDataMap[value.key] = value.value;
});
});
return {
convertValue: function (key) {
return key + '(' + allDataMap[key] + ')';
},
};
});