I want to add filter to filter ng-repeat by date greater than today.
For example to have a checkbox when check it to display only dates greater than today and uncheck display all.
Here what I tried:
$scope.gteComparator = function (a, b) {
return new Date(a) >= new Date(b);
};
$scope.greaterThan = function (prop, val) {
return prop > val;
}
On the view:
ng-repeat="row in myModel" | filter: firstFilter| | filter:{ 'DateColumn': (new Date()) }:gteComparator
or
| filter: greaterThan('DateColumn', new Date())
But none work, what should I do?
On the view:
ng-repeat="row in myModel | myFilter"
Controller code:
var nameSpace = angular.module('tst',[]);
nameSpace.controller('MyController', function MyController($scope) {
//controller here
});
nameSpace.filter("myfilter", function() {
return function(items) {
var arrayToReturn = [];
for (var i=0; i<items.length; i++){
var date = items[i].date;
if (date > new Date()) {
arrayToReturn.push(items[i]);
}
}
return arrayToReturn;
};
});