Dot-Net
如何使用角度 $http 服務從返回的 JSON 對像中獲取 Odata Next Link
我已經為我的 web api 實現了 Odata 查詢語法。我成功地只能返回前 10 個結果和更多結果的連結。但是,我無法使用我的 angularjs 前端從伺服器返回的 JSON 對像中提取此連結。
假設伺服器響應如下:
{ "odata.metadata":"http://localhost:60497/odata/$metadata#tables","value":[ { "id":001,"name":"abc" },{ "id":002,"name":"pqr" },{ "id":003,"name":"xyz" },{ . . . ],"odata.nextLink":"http://localhost:60497/odata/tables?$skip=10" }現在我通過使用 $http 的成功方法將返回的數據分配給一個變數並使用 ng-repeat 來顯示數據。我將其分配如下:
.success(function(data)){ $scope.foo = data.value; }但是,當我嘗試使用以下方法訪問下一個連結時:
$scope.link = data.odata.nextLink;在成功方法中,它給了我一個錯誤。我在這裡錯過了什麼?我還能如何訪問返回的連結?還有其他方法可以實現伺服器端分頁嗎?
我有同樣的問題,或多或少。我想這與 JavaScript 對象及其屬性的引用方式有關。參考資料
data.odata.nextLink意味著有一個帶有子屬性/欄位“nextLink”的屬性“odata”。情況並非如此,“odata.nextLink”是屬性的名稱。我不知道為什麼 OData 是這樣的。
我通過使用字元串引用獲得了這個屬性的內容,即
data['odata.nextLink']不知道有沒有什麼缺點,不過好像還可以。。。
using Newtonsoft.Json; [JsonProperty("@odata.nextLink")] public string nextPage { get; set; }