Angular: Empty Fiddle

http://angularjs.org/

by Pratik Bhattachary

HTML

<script src="http://code.angularjs.org/angular-1.0.1.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<div ng-controller="MyCtrl">
  <input type="text" ng-model="minYear" placeholder="Start Year">
  <input type="text" ng-model="maxYear" placeholder="End Year">

  <div ng-repeat="year in years | yearFilter: minYear: maxYear">
    {{year}}
  </div>
</div>

JavaScript

var myApp = angular.module('myApp', []);

//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});

function MyCtrl($scope) {
  $scope.years = ["1990", "1991", "1996", "1999", "2000", "2005", "2007", "2011", "2016"];
}

myApp.filter("yearFilter", function() {
  return function(years, startYear, endYear) {
    var filteredYears = years;
    if (!isNaN(startYear)) {
      filteredYears = _.filter(filteredYears, function(year) {
        return year >= startYear;
      });
    }
    if (!isNaN(endYear)) {
      if (isNaN(startYear) || (parseInt(startYear) < parseInt(endYear))) {
        filteredYears = _.filter(filteredYears, function(year) {
          return year <= endYear;
        });
      }
    }
    return filteredYears;
  }
});