Angular: Empty Fiddle
http://angularjs.org/
HTML
<script src="http://code.angularjs.org/angular-1.0.1.js"></script>
<div ng-controller="MyCtrl">
<p>Select Department</p>
<label><input type='checkbox' value='account' ng-model='department.account' /> Account</label>
<label><input type='checkbox' value='female' ng-model='department.sales' /> Sales</label>
<label><input type='checkbox' value='female' ng-model='department.all' /> ALL</label>
<table>
<thead>
<th>Department</th>
<th>Name</th>
<th>Gender</th>
</thead>
<tbody>
<tr ng-repeat='item in filterd'>
<td>{{item.dept}}</td>
<td>{{item.name}}</td>
<td>{{item.gender}}</td>
</tr>
</tbody>
</table>
</div>
CSS
*{font-family: verdana; margin: 20px}
table{width:90%; }
thead th{
font-weight:bold;
background-color:#bbb;
padding: 5px 7px;
}
tbody td{
border: 1px dashed #bbb;
padding: 5px 7px;
}
JavaScript
var myApp = angular.module('myApp',[]);
//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});
function MyCtrl($scope, $filter) {
$scope.department ={ "account": false, "sales": false, "all": false }
$scope.$watch('department', function(newval, oldval){
if(oldval != newval){
$scope.filterd = [];
if($scope.department.all)
$scope.filterd = angular.copy($scope.empList);
else{
if($scope.department.account)
$scope.filterd = $filter('filter')($scope.empList, { dept: "account" });
if($scope.department.sales)
$scope.filterd = $scope.filterd.concat($filter('filter')($scope.empList, { dept: "sales" }));
}
}
}, true);
$scope.empList = [
{"dept":"account","name":"John","gender":"male"},
{"dept":"sales","name":"Ram","gender":"male"},
{"dept":"travel","name":"Peter","gender":"male"},
{"dept":"hr","name":"jane","gender":"male"},
{"dept":"account","name":"rose","gender":"female"},
{"dept":"sales","name":"mary","gender":"female"},
{"dept":"sales","name":"mark","gender":"male"},
{"dept":"account","name":"maria","gender":"female"},
{"dept":"travel","name":"lee","gender":"male"},
{"dept":"sales","name":"hulk","gender":"male"},
{"dept":"hr","name":"spiderman","gender":"male"},
{"dept":"travel","name":"potter","gender":"male"}
];
}