如何使用angular $ http服务从返回的JSON对象获取Odata Next Link

soh*_*091 3 .net json odata asp.net-web-api angularjs

我已经为我的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"
}
Run Code Online (Sandbox Code Playgroud)

现在我通过使用$ http的成功方法显示数据,方法是将返回的数据分配给变量并使用ng-repeat.我按如下方式分配:

.success(function(data)){
  $scope.foo = data.value;
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用以下方法访问下一个链接时:

$scope.link = data.odata.nextLink;
Run Code Online (Sandbox Code Playgroud)

在成功方法中,它给了我一个错误.我在这里错过了什么?我怎样才能访问返回的链接?有没有其他方法来实现服务器端分页?

小智 6

我或多或少都有同样的问题.我想这与JavaScript对象及其属性的引用有关.参考资料

data.odata.nextLink
Run Code Online (Sandbox Code Playgroud)

将意味着有一个属性"odata"与子属性/字段"nextLink".情况并非如此,"odata.nextLink"是该属性的名称.我不知道为什么OData是这样的.

我通过使用字符串引用ie得到了这个属性的内容

data['odata.nextLink']
Run Code Online (Sandbox Code Playgroud)

不知道是否有一些缺点,但似乎有效......