【问题标题】: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>