【问题标题】:AngularJS search filter with other filtersAngularJS 搜索过滤器和其他过滤器
【发布时间】:2014-06-26 20:08:12
【问题描述】:

我有一个代码如下:

<input type='text' ng-model="search.$">
<li ng-repeat="item in items" |filter:isExpired | filter:search>{{item.name}}</li>

目前items有一个布尔属性表示是否过期,页面显示所有未过期的items。

在搜索时,我想显示所有项目,包括过期项目。有没有办法在搜索时切换 isExpired 过滤器?还是我需要开发自己的自定义过滤器?如果是这样,谁能给我一个方法的想法?

任何帮助将不胜感激!

【问题讨论】:

    标签: angularjs angularjs-ng-repeat angularjs-filter


    【解决方案1】:

    您可以在控制器中进行过滤:

    .controller('YourController', function($scope, $filter){
    
        $scope.getItems = function() {
    
            var filtered;
    
            if($scope.search) {
    
                filtered = $filter('filter')($scope.items, $scope.search);
    
            }
            else{
    
                filtered = $filter('filter')($scope.items, {isExpired: false});
            }
    
    
            return filtered;
        }
    });
    

    然后,您的 ng-repeat 将如下所示:

    <li ng-repeat="item in getItems()">{{item.name}}</li>
    

    【讨论】:

      猜你喜欢
      • 2018-12-18
      • 1970-01-01
      • 2022-11-24
      • 2014-10-12
      • 1970-01-01
      • 2015-12-20
      • 1970-01-01
      • 2015-07-03
      • 1970-01-01
      相关资源
      最近更新 更多