2015-04-05 56 views
0

我正在寻找与WebAPI一起使用Angular JS--将从WebAPI返回大量结果,因此想要使用某种服务器端分页和过滤。AngularJS和服务器端过滤器和分页

我见过的大部分教程都是针对客户端过滤的,这不是我要找的。

之前没有真正使用AngularJS,所以寻找一个简单的例子,可以展示如何利用这个 - 有效地我有一个产品列表,并希望能够例如按价格过滤。由于这是一个大型数据集,我也想利用分页。

此刻,在我的控制,我有:

app.controller("MyController", function ($scope, $http){ 


    $http.get('/api/ProductResults'). 
     success(function (data, status, headers, config) { 
     $scope.results = data.results; 

     }). 
      error(function (data, status, headers, config) { 
     // log error 

     }); 

将返回的产品清单,我会用它来输出列表。

WebAPI将采用页码和过滤器等参数,但我不知道如何在代码中实现这一点。

$http.get('/api/Products?page=1&minPrice=10') 

我想我会从URL参数中获取当前页码和最低价格?

回答

0

对于页码和minPrice,你可以有范围变量来保存你的信息。假设您在页面上有一个数据网格,其中包含您拥有的多页数据的导航。在这种情况下,我将有一个$ scope.pageNumber变量绑定到该数据网格导航项。点击下一个或上一个选项会更改$ scope.pageNumber的值,并且在您使用$ http时,您将在构建请求URL时使用该$ scope.pageNumber。 minPrice也是一样。

您可以添加参数到您的要求是这样的:

$http({ 
    url: "/api/Products", 
    method: "GET", 
    params: {page : 1, minPrice : 10} 
}); 
+0

反正是有从当前页面的URL得到的参数值? 所以,如果我有index.html /?page = 1,将馈入$ http方法? – Steve 2015-04-06 06:51:32

+0

是的,你可以在控制器上注入$ routeParams服务。它将以{{page:1,minPrice:10}}的形式包含路由URL参数。 – jarz 2015-04-07 13:55:43