在当前项目中,我想使用 angular 的 $http 服务在我的 Kendo 数据源中发出 HTTP 请求,因为我正在使用本博客中描述的响应拦截器:
http://www.espeo.pl/2012/02/26/authentication-in-angularjs-application
我在我的应用程序中使用 KendoUI Grid 来显示数据,这些数据是从服务器以 JSON 格式获取的。由于某种原因,如果我在“传输”对象中指定一个函数并且仅将 URL 发送到服务器(example.com/odata/Foo),而不是完整查询(example.com /odata/foo?$filter=barId lt 100)。
我这样设置我的剑道数据源:
$scope.foo = new kendo.data.DataSource({
type: "odata",
pageSize: 25,
serverPaging: true,
serverFiltering: true,
serverSorting: true,
transport: {
read: function (options) {
$http({
url: '/odata/foo',
method: 'GET',
params: options.data
})
.success(function (result) {
options.success(result);
});
},
parameterMap: function (options, type) {
return kendo.data.transports["odata"].parameterMap(options, type);
}
}
使用 Angular 的 $http 服务的 HTTP 请求可以正常工作,我对此没有任何问题。问题似乎是我无法(URL?$filter=[filter expression])
从我的剑道数据源中的“过滤器”对象中获取查询部分。我尝试使用 parameterMap 选项,但这也没有给出预期的结果。