$scope.filterByCurrentFilter = function (entity) {
var selectedFilters = {};
for (var filterName in $scope.filter) {
var criteria = $scope.filter[filterName];
for (var criteriaName in criteria) {
if (criteria[criteriaName]) {
var criteriaVals = selectedFilters[filterName] || [];
criteriaVals.push(criteriaName);
if (criteriaVals.length > 0)
selectedFilters[filterName] = criteriaVals;
}
}
}
for (var key in selectedFilters) {
var filterVals = selectedFilters[key];
if (!filterVals || filterVals.length === 0)
continue;
var entityVal = entity[key];
entityVal = angular.isArray(entityVal) ? entityVal : [entityVal];
var matches = entityVal.some ( function(item) { // jshint ignore:line
return filterVals.indexOf(item) != -1;
});
if (!matches)
return false;
}
return true;
};
Comments