AngularJS ngResource定制参数通过两个''到odata服务

时间:2015-02-06 16:27:50

标签: angularjs odata ngresource

我发誓这是在我将ngResource升级到1.3.11之前的工作......

所以我的问题是,当我将自定义过滤器参数应用于我的odata资源请求时,过滤器会在写入参数之前附加额外的$。

http://myservice/odata/Data?&format=application%2Fjson&$filter=year(Date)+lt+2012

上面通过提琴手工作得很好,是正确的要求。

我使用ngResource发出获取请求

data.factory('DataService', ['$resource', function ($resource) {
    var odataUrl = 'http://myservice/odata/Data?&format=application%2Fjson'; 
    var d = $resource('', {
        filter: '@filter'
    }, {            
        queryByYear: {
            method: 'GET',
            url: odataUrl, isArray: false
        }
    });
    return d;

}]);

和控制器功能如下:

$scope.getByYear = function (op) {

        DataService.queryByYear({ filter: 'year(PublishedDate) ' + op }, function (data) {
            $scope.events = data;
        });
    };

由于某种原因,此请求的输出如下:

http://myservice/odata/Data?&format=application%2Fjson&$$filter=year(Date)+lt+2012

注意第二个完全不必要的&在过滤器参数旁边...

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在查看将我的odata请求转换为正确格式后发生的事情后,我意识到我添加了第三方angular-odata模块,该模块正在执行转换。较新的angularjs $ http已经处理了这种转换。卫生署!