How to get Odata Next Link from the returned JSON object using angular $http service
Solution 1
I had the same problem, more or less. I guess it has got to do with JavaScript objects and how their properties are referred to. The reference
data.odata.nextLink
would mean there is a property "odata" with a sub-property/field "nextLink". This is not the case, "odata.nextLink" is the name of the property. I don't know why OData is like this.
I got the contents of this property by using a string reference i.e.
data['odata.nextLink']
Don't know if there is some drawback, but seems to work...
Solution 2
using Newtonsoft.Json;
[JsonProperty("@odata.nextLink")]
public string nextPage { get; set; }
Solution 3
I got it to work using
theReturnedObject['@odata.nextLink']
![sohel101091](https://i.stack.imgur.com/GQv8c.jpg?s=256&g=1)
sohel101091
Updated on July 02, 2022Comments
-
sohel101091 almost 2 years
I have implemented Odata query syntax for my web api. I am successfully able to return only the first 10 results and the link for the further results. However I am unable to extract this link from the JSON object that is returned by the server using my angularjs front end.
Say the server is responding as follows:
{ "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" }
Now I am displaying the data by using the success method of $http by assigning the returned data to a variable and using ng-repeat. I am assigning it as follows:
.success(function(data)){ $scope.foo = data.value; }
However when I try to access the next link using:
$scope.link = data.odata.nextLink;
within the success method it gives me an error. What am I missing over here? How else can I access the link returned? Is there any other method to implement server side paging?