将响应标头从ngResource传递到控制器
Pass response headers from ngResource to controller
我有以下资源:
factory('User', function($resource) {
return $resource(apiURL + 'user/:userId', {}, {
query: {
method: 'GET',
isArray: true,
transformResponse: function(data, headers) {
data = JSON.parse(data);
var cursor = headers().link;
if(!cursor) {
return data;
}
data.cursor = getNextCursor(cursor);
console.log(data);
return data;
}
}
});
}).
这是我的控制器:
controller('UserListCtrl', function($scope, $rootScope, User) {
$scope.users = [];
$scope.orderBy = 'created';
$rootScope.title = 'user';
var cursor;
/**
* Appends new results to the list of users.
*/
function appendResults(results) {
console.log(results);
cursor = results.cursor;
console.log('set cursor: ' + cursor);
for(var i in results) {
if(results[i] instanceof User) {
$scope.users.push(results[i]);
}
}
}
/**
* Fetches new users from the server and appends it to the
* locally stored users.
*/
$scope.fetch = function() {
if(cursor) {
console.log('using cursor:');
User.query({ncursor: cursor}).$promise.then(appendResults);
} else {
User.query().$promise.then(appendResults);
}
};
$scope.fetch();
}).
我需要将响应标头中的光标从资源传递到我的控制器。有什么(干净的)方法可以做到这一点吗?
您可以将最后一个游标存储在工厂闭包中,并使用自定义getter返回它。
更新资源:
factory('User', function($resource) {
// the last responce cursor
var _cursor;
var resource = $resource(apiURL + 'user/:userId', {}, {
query: {
method: 'GET',
isArray: true,
transformResponse: function(data, headers) {
// save cursor to closure variable
_cursor = headers().link;
return JSON.parse(data);
}
}
});
// custom getter
resource.getCursor = function() {
return _cursor
}
return resource;
}).
更新的控制器:
$scope.fetch = function() {
if(User.getCursor()) {
console.log('using cursor:');
User.query({ncursor: User.getCursor()}).$promise.then(appendResults);
} else {
User.query().$promise.then(appendResults);
}
};
$scope.fetch();
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 从控制器返回后Ajax启动事件激发
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 如何在单击复选框后调用控制器方法
- 在控制器和数据对象之间同步数据
- 将Javascript数组发送到控制器ASP.NET MVC
- 角度控制器结构
- 如何在Jquery中发布后将值从视图返回到控制器
- 将值从html传递到AngularJS控制器
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 从控制器继承了隔离的作用域以生成可重用的指令
- Flash Uploadify在调用我的MVC控制器时没有保留会话/授权
- 为什么不't我的变量在我的控制器中填充后在我的视图中呈现
- Nodejs API控制器,用于在API之间切换
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 将不在模型中的数据返回到mvc控制器
- 未激发路由的控制器属性上的观察者
- 将响应标头从ngResource传递到控制器
- Angular的ngResource对控制器不起作用