我发誓这是在我将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
注意第二个完全不必要的&在过滤器参数旁边...
有什么想法吗?
答案 0 :(得分:1)
在查看将我的odata请求转换为正确格式后发生的事情后,我意识到我添加了第三方angular-odata模块,该模块正在执行转换。较新的angularjs $ http已经处理了这种转换。卫生署!