【发布时间】:2014-09-14 12:15:37
【问题描述】:
我一直在寻找如何在 AngularJS 中轻松创建具有多个复选框的动态过滤器,但我发现没有一个解决方案让我满意。
这是一个过滤器示例,当复选框未选中时将显示所有内容,并在选中复选框时过滤数据。 (适合搜索引擎寻找有wifi、有阳台的酒店……例如)
过滤器:
app.filter('conveniences_filter', function() { return function( items, types) { var filtered = []; var displayItem; angular.forEach(items, function(item) { displayItem = true; angular.forEach(types, function(type, key) { if(type == true && item[key] == false) { displayItem = false; } }); if(displayItem == true) { filtered.push(item); } }); return filtered; }; });
在你的控制器中:
$scope.types = {wifi: false, balcony: false}
在您的 HTML 中
ng-repeat="property in properties | 便利过滤器:类型"
重要提示:$scope.types 中的键必须与属性项中的键相同,否则将无法正常工作。
这里的属性示例:
对象{名称:属性,wifi:假,阳台:真}
希望对你有用:)
【问题讨论】:
标签: angularjs checkbox filter filtering