【问题标题】:Retain filtered list before applying another filter using ng-repeat在使用 ng-repeat 应用另一个过滤器之前保留过滤列表
【发布时间】:2015-07-02 20:19:52
【问题描述】:

我有一个名为ListA 的列表。我正在对其执行一些过滤器并保存在一个名为 filteredList 的新数组中。

<div ng-repeat="element in filteredList =(ListA| filter: {label:searchCategory.value} |filter:searchString)">

现在,我想使用filteredList 来实现分页。我已经使用splice(start, end) 为另一个页面实现了分页,我更新了startend 值以更新可见数组。 添加拼接到过滤器将改变我的filteredList 大小,我需要它来计算分页的页数。

我需要进入ng-repeat 会是这样的

ng-repeat="element in newList.splice(start, end)" where `newList` without splice is essentially `filteredList`.

【问题讨论】:

    标签: arrays angularjs pagination angularjs-ng-repeat ng-repeat


    【解决方案1】:

    在这种情况下,您需要在 Javascript 本身中过滤列表。

    适合你的场景

    在您的控制器中:

    var ListA = [<some-data>];
    
    $scope.filteredList = $filter('filter')(ListA, searchString );
    $scope.filteredList = $filter('filter')($scope.filteredList, {label:searchCategory.value} );
    

    您应该在单击某些事件时使用过滤器值并在处理程序上重新计算此过滤列表。

    如果项目少于 200,那么您可以通过在过滤器表达式上实现观察器来实现实时过滤。

    【讨论】:

    • 完美!我把它放在一个函数中并调用模型更改。虽然有细微的变化。我已经更新了答案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    • 2016-03-04
    • 1970-01-01
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多