【问题标题】:ngTable filter only works for the first pagengTable 过滤器仅适用于第一页
【发布时间】:2015-02-27 14:11:44
【问题描述】:

处理包含 1000 多条记录的 ngTable。 一切正常,但我面临的唯一问题是过滤器。 它只过滤活动页面中的文本。 假设我在第 3 页,如果我使用文本框搜索/过滤某些内容,则它必须来自第 3 页,否则它不会显示任何内容..

我的代码如下:

    $scope.$watch("filter.$", function () {
    $scope.tableParams.reload();});


    $scope.tableParams = new ngTableParams({
        page: 1,            // show first page
        count: 10,          // count per page
        sorting: {
            schoolName: 'asc'     // initial sorting
        }
    },

{
    total: $scope.schoolInfo.length, // length of data
    getData: function ($defer, params) {
        var filteredData = {};


    //reason I am doing this is to get the data always filtered, no matter what
    var orderedData = $filter('orderBy')($scope.schoolName, params.orderBy());

         params.total(orderedData); // set total for recalc pagination

         $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
    },$scope:$scope
    });

排序工作完美,但仅用于搜索

搜索:<input type="text" ng-model="search.schoolName"> 我也试过 ng-model="search"

<tr ng-repeat="mydata in $data | filter:search"> 我也试过搜索:严格

如果有人可以帮助我,似乎没有任何帮助?

提前致谢

【问题讨论】:

    标签: javascript angularjs angularjs-ng-repeat angular-ui ngtable


    【解决方案1】:

    看一下 ng-table 中的以下示例:Table combining sorting and filtering

    尝试修改您的代码以使用此示例中的代码。

    【讨论】:

    • 嗨克里斯蒂安,感谢您的回复。但问题是他们正在使用 filter="{ 'name': 'text' }"> 这将在 ngTable 中显示一个文本框,但我想要的是表格上方的一个文本框,可以过滤文本。我也尝试过这种方式,但仍然没有帮助..
    • @Manam,你能解决你的问题吗?我面临着类似的问题,正在寻找解决方案。
    • 嗨@abi1964 问题是,你为什么要使用ng-Table?我当时想出的是,解决方案是在后端制作一个过滤器吗?我的意思是自定义过滤器,例如: app.filter('wordsFilter', function() { return function(items, word) { var filters = []; angular.forEach(items, function(item) { if(item.indexOf (word) !== -1){ filtered.push(item); } }); 在这里你可以在 all 数组本身中搜索,它是不受限制
    • 现在的问题是为什么要使用 ng-Table?仅仅因为它有一些预定义的排序,仅此而已?但我发现使用 ng-table 是一个错误,我可以使用一个简单的 html 表并轻松对其应用排序并将页面限制为 20 或 30,它可以给我任何我需要的东西,我不需要写后端中的所有这些配置。所以你可以做的是,在你的html表格的标题栏中,你可以放置链接进行排序,搜索可以很容易地应用到它上面。如果你需要一个例子让我知道。祝你好运
    猜你喜欢
    • 2021-12-04
    • 1970-01-01
    • 2019-09-17
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 2014-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多