抱歉,我是 Angular 新手。这可能是转储问题。 我在 json 中有以下数据结构:
[
{"id": "1", "name": "Alan", "location": "US"},
{"id": "2", "name": "Bella", "location": "UK"}
]
我有以下服务:
let users = getData();
function getUsers() {
return users;
}
function getData() {
return $http
.get("./data/users.json")
.then(function(response) {
return response.data;
});
}
function addUser(user) {
let id = users.$$state.value[users.$$state.value.length - 1].id++;
users.$$state.value.push({
// adding user
})
}
我从$http.get
获取一些非常不方便的对象。如何将其恢复为数组表示形式?
最佳答案
这里的问题是缺乏对如何promises的理解工作,你的$http
调用并不返回响应,而是对该异步请求的 promise 。当您有异步任务并且需要订阅其解析的回调时,Promise 正是用于这种情况。
无论如何,您必须订阅成功主题的回调,而不是尝试直接使用返回的 Promise,该回调在 Promise 中由 then(fn)
方法给出,并向您的变量提供从 $http.get().then ...$
上的链式 Promise 返回的数据。
例如:
let users = [];
getData()
.then(function (data) {
users = data;
});
function getUsers() {
return users;
}
function getData() {
return $http
.get("./data/users.json")
.then(function(response) {
return response.data;
});
}
function addUser(user) {
let id = users.$$state.value[users.$$state.value.length - 1].id++;
users.$$state.value.push({
// adding user
})
}
关于javascript - AngularJS:在 $http get 之后从对象检索数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40862854/