現在のプロジェクトでは、angular の $http サービスを使用して、Kendo データ ソースで HTTP リクエストを作成したいと考えています。これは、このブログで説明されているように、応答インターセプターを使用しているためです。
http://www.espeo.pl/2012/02/26/authentication-in-angularjs-application
サーバーから JSON 形式で取得したデータを表示するために、アプリケーションで KendoUI Grid を使用しています。何らかの理由で、「トランスポート」オブジェクトで関数を指定し、完全なクエリ (example.com /odata/foo?$filter=barId lt 100)。
Kendo DataSource を次のように設定しました。
$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 オプションを使用してみましたが、それも望ましい結果が得られませんでした。