如何处理通过$ resource get发送的参数?

时间:2016-08-04 23:39:47

标签: angularjs angular-resource angular-services

在控制器中:

class Info(Model):
    #...

    #related_name='+' prevents creating a reverse relation
    #on_delete=models.SET_NULL prevents deleting the Info object when its latest ad got deleted.
    latest_ad = models.ForeignKey('Ad', 
        related_name='+',
        blank=True,
        null=True,
        on_delete=models.SET_NULL
    )

在我的服务中:

MyService.get({queryParameter:'MyQueryParameter'}).$promise.then(function(result){
  return result; 
};

试图模拟它通常做的事情:

$resource('/api/path',{
  queryParameter: (function process(queryParameter) {
    //process queryParameter
    return processed_query_parameter;
  })('@queryParameter'),
});

然而,这似乎并不奏效。也不是这样:

queryParameter: '@queryParameter'

或者这个:

$resource('/api/path',{
   queryParameter: (function process(queryParameter) {
     //process queryParameter
     return processed_query_parameter;
   })(@queryParameter),
});

那么,如何在分配之前访问传递的参数并进行处理?

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

angular.module('app').service('MyService', ['$resource', function MyService($resource) {
var rs = $resource('http://localhost:8080/api');

    rs.getPersonalized(params){
        var customParams = {
            queryParameter: params.id
        }
        return rs.get(customParams);
    }

    return rs;
}]);

答案 1 :(得分:0)

请参阅文档。

https://docs.angularjs.org/api/ngResource/service/ $资源

试一试:

MyService.get({queryParameter:'MyQueryParameter'}).then(function(result){
  return result; 
};

$resource('/api/path');