'use strict';
angular.module('rmaServices', ['ngResource'])
.factory('rmaService', ['$resource',
function ($resource) {
return $resource(
'/RMAServerMav/webresources/com.pako.entity.rma/:id',
{},
{
delete: { method: 'DELETE', params: {id: '@rmaId'}},
update: { method: 'PUT', params: {id: '@rmaId'}},
//RMAServerMav/webresources/com.pako.entity.rma/0/3
findRange:{method: 'GET', params:{id:'@rmaId'/'@rmaId'}}
});
}]);
RMAServerMav/webresources/com.pako.entity.rma/0/3
这是使用findRange REST服务的正确方法。这个将rmaID从1返回到4,但是如何从控制器中使用它以及服务中的正确语法是什么?
在控制器中,我想使用它:
$scope.rmas = rmaService.findRange({id:'0'/'3'});
但这不起作用。
答案 0 :(得分:23)
您可以覆盖网址,阅读$resource文档
url - {string} - 特定于操作的网址覆盖。支持网址模板,就像资源级网址一样。
在资源声明中
findRange:{
url: '/RMAServerMav/webresources/com.pako.entity.rma/:id/:to',
method: 'GET',
params:{
id:'@id',
to: '@to'
}
}
在控制器中
$scope.rmas = rmaService.findRange({id:0, to: 3});
答案 1 :(得分:0)
我希望使用更短的定义参数的方法。这是一个完整的示例。
我们这里有两个参数:latitude和:longitude,它们仅在URL中定义。方法get已由ngResource定义
angular.module('myApp', ['ngResource'])
.controller('myCtrl', function (ReverseGeocoderResource) {
ReverseGeocoderResource.get({longitude: 30.34, latitude: 59.97}).$promise.then(function (data) {
console.log(data.address.road + ' ' + data.address.house_number);
})
})
.factory('ReverseGeocoderResource', function ($resource) {
return $resource('https://nominatim.openstreetmap.org/reverse?format=json&lat=:latitude&lon=:longitude&zoom=18&addressdetails=1&accept-language=ru');
});
答案 2 :(得分:-1)
尝试在控制器中使用它更改您的服务,如下所示:
'use strict';
angular.module('rmaServices', ['ngResource'])
.factory('rmaService', ['$resource',
function ($resource) {
var service ={}
service.rma = function(){ // name it whatever you want
return $resource(
'/RMAServerMav/webresources/com.pako.entity.rma/:id',
{},
{
delete: { method: 'DELETE', params: {id: '@rmaId'}},
update: { method: 'PUT', params: {id: '@rmaId'}},
//RMAServerMav/webresources/com.pako.entity.rma/0/3
findRange:{method: 'GET', params:{id:'@rmaId'/'@rmaId'}}
});
};
return service;
}]);
//in controller
rmaService.rma()
.then(function(resource){
$scope.rmas = resource.$findRange({id:'0'/'3'});
});
我不知道这是否适用于BTW,因为我没有使用ngResource,但这就是我对工厂服务进行编码的方式。