AngularJS: advanced filtering
HTML
<script src="http://docs-next.angularjs.org/angular-0.10.5.min.js" ng:autobind></script>
Year min: <input type="number" ng:model="filter.yearMin" />
Year max: <input type="number" ng:model="filter.yearMax" />
<hr />
<div ng:repeat="i in items.$filter(filterItem)">
Name: {{i.name}} ({{i.year}})
</div>
<hr />
Filters = {{filter}}
JavaScript
function MainCtrl() {
this.filter = {
yearMin: 1900,
yearMax: 2020
};
this.items = [
{name: 'First', year: 1950},
{name: 'Second', year: 2000},
{name: 'Third', year: 1989},
{name: 'Fourth', year: 2011}
];
this.filterItem = function(item) {
if (this.filter.yearMin && this.filter.yearMin > item.year) return false;
if (this.filter.yearMax && this.filter.yearMax < item.year) return false;
return true;
};
}