【问题标题】:AngularJS and serverside filter and paginationAngularJS 和服务器端过滤器和分页
【发布时间】:2015-06-10 09:01:16
【问题描述】:

我希望将 Angular JS 与 WebAPI 结合使用 - 将从 WebAPI 返回大量结果,因此希望使用某种服务器端分页和过滤。

我看到的大多数教程都是关于客户端过滤的,这不是我想要的。

之前没有真正使用过 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 参数中获得当前页码和最低价格?

【问题讨论】:

    标签: javascript angularjs pagination filtering


    【解决方案1】:

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

    您可以像这样将参数添加到您的请求中:

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

    【讨论】:

    • 有没有办法从当前页面的URL获取参数值?因此,如果我有 index.html/?page=1 可以输入 $http 方法?
    • 是的,您可以在控制器上注入 $routeParams 服务。它将以 {page: 1, minPrice: 10} 形式包含您的路线 url 参数
    猜你喜欢
    • 2017-09-14
    • 2014-10-31
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    相关资源
    最近更新 更多