我需要翻译价值工厂。这个工厂从服务器接收 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] + ')';
},
};
});