角度嵌套过滤器依据复选框
Angular nested filters by checkbox
我正在尝试构建一个小型计划应用程序,该应用程序显示两天中发生的事件。用户目前可以通过复选框过滤事件的类别/主题。这是一个演示:http://jsfiddle.net/qx3cD/201/
我想创建一个嵌套过滤器,首先允许用户选择第 1 天或第 2 天,然后按类别过滤这些结果。
有没有办法使用 Angular 执行嵌套过滤器?
.JS
function MyCtrl($scope) {
$scope.showAll = true;
$scope.checkChange = function() {
for(t in $scope.categoryArray){
if($scope.categoryArray[t].on){
$scope.showAll = false;
return;
}
}
$scope.showAll = true;
};
$scope.myFunc = function(a) {
if($scope.showAll) { return true; }
var sel = false;
for(cat in $scope.categoryArray){
var t = $scope.categoryArray[cat];
console.log(t);
if(t.on){
if(a.category.indexOf(t.name) == -1){
return false;
}else{
sel = true;
}
}
}
return sel;
};
$scope.categoryArray = [{ name: "A", on: false}, {name:"B", on: false}, {name:"C", on: false}, {name:"D", on: false}, {name:"E", on: false}, {name:"F", on: false}, {name:"G", on: false}, {name:"H", on: false}];
$scope.sessionArray = [{
"time": "9:00",
"day": "day 1",
"name": "Session One",
"category": ["A", "B", "E", "D"]
}, {
"time": "10:00",
"day": "day 1",
"name": "Session Two",
"category": ["A", "B", "C", "D"]
}, {
"time": "11:00",
"day": "day 1",
"name": "Session Three",
"category": ["G", "F", "D", "E"]
}, {
"time": "12:00",
"day": "day 1",
"name": "Intermission A",
"category": ["A", "B", "C", "D"]
}, {
"time": "13:00",
"day": "day 1",
"name": "Session Four",
"category": ["H", "A", "E"]
}, {
"time": "9:00",
"day": "day 2",
"name": "Session Five",
"category": ["D", "E", "B", "G"]
}, {
"time": "11:00",
"day": "day 2",
"name": "Session Six",
"category": ["A", "E", "C"]
}, {
"time": "12:00",
"day": "day 2",
"name": "Session Seven",
"category": ["G", "H", "B", "C"]
}]
.HTML
<li ng-repeat="cat in categoryArray">
<label>
<input type="checkbox" ng-model="cat.on" ng-change="checkChange()" />{{cat.name}}</label>
</li>
<hr>
<h1><strong>Category:</strong></h1>
<div ng-repeat="sessionItem in sessionArray | filter:myFunc | orderBy: 'id'" class="ng-scope">
<h3>{{sessionItem.name}}</h3>
</div>
演示
要嵌套另一个过滤器,只需添加另一个管道|
并正常使用"过滤器"过滤器。
<div ng-repeat="sessionItem in sessionArray | filter:myFunc | filter:theFilter | orderBy: 'id'">
在此处查看示例。
相关文章:
- 角度嵌套过滤器依据复选框
- AngularJS过滤器使用ng个重复复选框显示所有页面加载
- 在同位素.js中加入多个复选框过滤器
- PHP-AJAX复选框过滤器使用数据标记属性
- 如何在 emberjs 中使用复选框实现多个过滤器
- Angular/Ionic/Javascript:无法让下拉过滤器作为复选框工作
- 带有群集和过滤器复选框的地图框个性化图标
- 角度ng重复过滤器在搜索后取消选中所有复选框
- 带有复选框和滑块过滤器的jQuery同位素
- 带有复选框的 JavaScript 过滤器
- Google Maps API v3复选框/过滤器数据库
- 复选框过滤器用于显示/隐藏用多个data-*属性装饰的元素
- 构建复选框过滤器的最佳方式,以显示/隐藏基于多个data-*属性的元素
- 复选框过滤器在AngularJS中不能正常工作
- Jquery复选框过滤器
- JS复选框过滤器与多个类别
- 如何使用angularjs为ng重复列表创建复选框过滤器
- 使用Jquery的多条件复选框过滤器
- 如何使我的复选框过滤器工作
- AngularJS的复选框过滤器