【发布时间】:2015-02-07 02:22:43
【问题描述】:
我发誓这在我将 ngResource 升级到 1.3.11 之前可以正常工作...
所以我的问题是,当我将自定义过滤器参数应用于我的 odata 资源请求时,过滤器会在写入参数之前附加一个额外的 $。
http://myservice/odata/Data?&format=application%2Fjson&$filter=year(Date)+lt+2012
以上通过提琴手工作得很好,是正确的请求。
我正在使用 ngResource 发出 get 请求
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
注意过滤器参数旁边的第二个和完全不必要的 &...
有什么想法吗?
【问题讨论】:
-
其实和ngResource的版本无关。研究 AngularJS 的变化以及它们如何处理 xhr。
标签: angularjs odata ngresource