这是我现在使用的工厂,我得到2个json对象并尝试做一个数组然后我不能在textreplacer中使用它。
app.factory('myFactory', function ($http) {
var service = {}
var array = [];
var obj = [];
service.getText = function () {
return text = $http.get('api/json_text').then(function(res){
return res.data;
});
}
service.getShortcuts = function () {
return shortcuts = $http.get('api/json_shortcuts').then(function(res){
return res.data;
});
}
service.merchJson = function () {
service.getText().then(function(text) {
service.getShortcuts().then(function(shortcuts) {
angular.forEach(text, function(value, key) {
if(!angular.isUndefined(shortcuts[value])){
array_value = shortcuts[value];
obj[key] = array_value;
array.push(obj[key]);
}else{
array_value = text[key].toString();
obj[key] = array_value;
array.push(obj[key]);
}
});
});
});
return array;
}
service.textReplacer = function () {
var array = service.merchJson();
angular.forEach(array, function(value, key) {
});
console.log(array);
}
return service;
})
我做错了什么或者是错误,因为我可以在console.log(数组)中看到它 没有任何问题。
答案 0 :(得分:0)
试试这个
service.merchJson = function () {
var result;
return service.getText().then(function (text) {
result = text;
return service.getShortcuts();
})
.then(function (shortcuts) {
angular.forEach(result, function (value, key) {
if (!angular.isUndefined(shortcuts[value])) {
array_value = shortcuts[value];
obj[key] = array_value;
array.push(obj[key]);
} else {
array_value = result[key].toString();
obj[key] = array_value;
array.push(obj[key]);
}
});
return array;
});
}
service.textReplacer = function () {
service.merchJson().then(function (array ) {
angular.forEach(array, function (value, key) {});
console.log(array);
});
}