【发布时间】:2014-11-24 21:19:59
【问题描述】:
问题描述
我正在使用角度资源从我的服务器获取数据。我对其进行了一些扩展,以确保我的所有资源都有安全标头。
问题是在第二个获取请求及以后,我的获取请求发送限制=0,只有第一个获取请求正确发送(限制=12)。
代码部分
这是我的基础资源工厂(用于确保所有资源都包含密钥和所有内容):
app.factory('SecuredFactory', function($resource){
var DEFAULT_ACTIONS = {
'get': {method:'GET'},
'query': {method:'GET', isArray:true},
};
var DEFAULT_PARAMS = {
'limit': 12,
'format': 'json'
};
for(var key in DEFAULT_ACTIONS){
DEFAULT_ACTIONS[key]['headers'] = <headers object>;
}
var securedResource = function(url, paramDefaults, actions){
for (var attrname in actions) {
DEFAULT_ACTIONS[attrname] = actions[attrname];
}
for (var attrname in paramDefaults) {
DEFAULT_PARAMS[attrname] = paramDefaults[attrname];
}
var defaultResource = $resource(url, DEFAULT_PARAMS, DEFAULT_ACTIONS);
return defaultResource;
};
return securedResource;
});
这是我如何从安全工厂创建特定工厂的示例:
app.factory('QuestionFactory', function(SecuredFactory, Constants){
var url = Constants.SERVER_URL + 'question/';
var Task = SecuredFactory(url);
return Task;
});
这就是我最终使用它的方式,例如:
// filtering example (not important for this matter):
var filtering = {author: "Daniel"};
var contents = [];
var resource = QuestionFactory;
resource.get(filtering, function (res) {
// success fetching
$scope.contents = $scope.contents.concat(res['objects']);
}
// failed fetching
, function (err) {
}
);
请求
第一个请求:
question?format=json&limit=12&offset=0
第二个请求并开始:
question?format=json&limit=0&offset=0
【问题讨论】:
-
您是否尝试过调试 for 循环并查看返回的内容?
-
@MichelTomé - 我知道返回的内容。我得到了所有的对象,而不是只有 12 个。这显然是因为请求有 limit=0 而不是 limit=12
标签: angularjs angular-resource