我在angularjs应用程序中有以下工厂方法。
var mod = angular.module('scheduleApp.services', ['ngResource', 'ui.bootstrap']);
mod.factory('SchedulesFactory', function ($resource) {
return $resource('http://devhost\\:8080/api/schedule', {}, {
query: { method: 'GET', isArray: false},
create: { method: 'POST' },
getPage: { method: 'GET',
params: {page: '@page',
q: {"order_by": [{"field": "@fieldName", "direction": "@direction"}]}} },
getPageSorted: {method: 'GET'}
});
});
在我的GET处理程序getPage中,我想传递一个字典,我可以从中解析三个变量,page,fieldName和direction。
var n = {};
n.page = $scope.currentPage;
n.fieldName = $scope.fieldName
n.direction = $scope.direction
但这不起作用。当我检查我的GET URL字符串时,angularjs不会将fieldName和direction标识符替换为我的字典中的值。以下网址方案是GET' ed:
/ API /时间表方向= ASC&安培; fieldName的= ID&安培;页= 1和Q = {" ORDER_BY":[{"字段":" @ fieldName的&# 34;,"方向":" @方向"}]}
以下是我调用getPageSorted例程的方法:
var n = {};
n.page = $scope.currentPage;
n.fieldName = "id"
n.direction = "asc"
SchedulesFactory.getPage(n, function(object) {
console.log(object);
$scope.schedules = object.objects;
$scope.totalItems = object.num_results;
});
是否有人建议我如何具体解决这个问题?
答案 0 :(得分:1)
我不相信ng-resource支持你想要做的事情。您需要使用函数代替“q”并在那里进行自己的更改。