JSFiddle - React, Tailwind, and code Playground
HTML
<div ng-app="App">
<div ng-controller="HomeCtrl">
<li>
<p>By Status</p>
<p>
<input type="checkbox" ng-model="filter.Admin">
<label>Admin</label>
</p>
<p>
<input type="checkbox" ng-model="filter.Lead">
<label>Lead</label>
</p>
</li>
<li>
<p>By Role</p>
<select ng-model="filter.selectedSearch" ng-options="value for (key, value) in filterAdmin"></select>
</li>
<div ng-repeat="item in mylist | filter:filterByStatus | filter:filterByRole">
<div class="col-md-4 col-sm-4 name">
<p>{{item.name}}</p>
</div>
<div class="col-md-2 col-sm-2">{{item.title}}</div>
</div>
</div>
</div>
JavaScript
angular.module('App', [])
.controller('HomeCtrl', ['$scope', function ($scope) {
$scope.mylist = [{
"title": "Executive",
"email": "jako@lous.com",
"roles": [
"Admin"],
"userStatus": "Lead",
"name": "jackie, chain"
}, {
"title": "Admin",
"email": "admin@admin.com",
"userStatus": "Admin",
"roles": [
"User"],
"name": "World, Tiger"
}, {
"title": "Executive",
"email": "admin@rolf.com",
"userStatus": "Admin",
"roles": [
"User",
"Admin"],
"name": "Name, Few"
}];
$scope.filterAdmin = ["Default", "User", "Admin"];
$scope.filter = {
Admin: false,
Lead: false,
selectedSearch: 'Default'
}
$scope.filterByStatus = function (stat) {
//check by status
var by_status = $scope.filter[stat.userStatus];
return by_status;
};
$scope.filterByRole = function (stat) {
//check by roles
var by_roles = stat.roles.indexOf($scope.filter.selectedSearch) !== -1;
return by_roles;
};
}])