javascript - 添加分页后 AngularJS 中的自定义过滤器

标签 javascript filter angularjs pagination angularjs-ng-repeat

对我的 ng-repeat 列表实现分页后 ( Update pagination in AngularJS after filtering )

<li ng-repeat="data in filtered = (list | filter:search) ... >

我的自定义过滤器现在出现问题

<li ng-repeat="data in filtered = (list | filter:search) | customFilter:search ... >

我需要此过滤器来按多种语言进行搜索(选择两种或多种语言)。 如果我用列表中的数据替换过滤后的数据= (列表|过滤器:搜索),您将看到它正在工作。但我需要过滤来进行分页。

jsFiddle:http://jsfiddle.net/StinsonMaster/SuEX6/4/ (基于the fiddle from the previous thread)

最佳答案

我想我误解了你原来的问题。

我重写了您的自定义过滤器。它并不完全是面向对象的,但稍加修饰它可能会更具可扩展性。基本上,您只需要比基本 Angular 过滤器更具包容性的东西。

app.filter("customFilter", function() {
    return function(input, search) {
        if(search && search != undefined) {
            var _toRet = new Array();
            for(var i in search) {
                for(var k in input) {
                    if(search.indexOf(input[k].language) != -1 && _toRet.indexOf(input[k]) == -1) {
                        _toRet.push(input[k]);
                    }
                }
            }
            return _toRet;
        } else {
            return input;
        }
    };
});

另请注意 ngRepeat 语法的更改。

ng-repeat="data in filtered = list | filter:search.name | customFilter:search.language | startFrom:(currentPage-1)*entryLimit | limitTo:entryLimit"

http://jsfiddle.net/doublekid/5Bs3h/

关于javascript - 添加分页后 AngularJS 中的自定义过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16162527/

相关文章:

javascript - AngularJS Promise 在 foreach 中获取数据

javascript - 列表不会出现在 d3.js 图下

javascript - 为 1 个日期标签调用 2 个 JavaScript 函数

javascript - 回调时ajax查询错误

Symfony 2.1 Doctrine 过滤器(启用/禁用)

javascript - 为什么原生 JS FILTER 函数的输出会有所不同

javascript - $scope 未绑定(bind)到 Angular JS 中的函数内部

javascript - 将 toFixed(3) 添加到变量时遇到问题

javascript - 眼镜代码幻灯片小高度

java - 使用谷歌 Collection 过滤和排序列表