【发布时间】:2015-03-18 14:05:45
【问题描述】:
我有以下问题。我从 API 获取数据并将其显示给用户。这是一个包含图像的列表,您可以滚动浏览。当用户点击图片时,他会在不同的网站上获得更多关于图片的信息。
我想将从服务器获取的数据存储在工厂内部的局部变量中。但不知何故,数据没有正确保存,这让我发疯了。
.factory('PostService', function($q, $http, domain){
var posts = [];
return {
getInit: function(){
var self = this;
//get fresh elements
console.log("get fresh elements");
var req = {
method: 'POST',
url: domain+'/api/v1/statuses'
}
return $http(req).then(function(success){
self.storeLocal(success.data.data); //store data in factory
return success.data.data; //return data to controller
}, function(error){
console.log(error);
});
},
调用后,我有第二个函数应该访问帖子并从服务器获取更多元素。
getAfter: function(){
var self = this;
console.log("get more elements");
var req = {
method: 'POST',
url: domain+'/api/v1/statuses',
data: {
'last_status': posts[posts.length - 1].id
}
}
return $http(req).then(function(success){
if(success.data.data.length > 0){
self.storeLocal(success.data.data);
return success.data.data;
} else {
return false;
}
}, function(error){
console.log(error);
});
}
storeLocal: function(posts){
posts = posts.concat(posts);
},
但它告诉我帖子未定义。那么有什么问题呢?
【问题讨论】:
标签: angularjs http variables save factory