如何过滤日期大于 ng-repeat 的 ng-repeat

How to filter ng-repeat with dates greater than in ng-repeat

我想添加过滤器以按大于今天的日期过滤 ng-repeat。
例如有一个复选框,选中它时只显示大于今天的日期,取消选中显示全部。
这是我尝试过的:

$scope.gteComparator = function (a, b) {
   return new Date(a) >= new Date(b);
};
$scope.greaterThan = function (prop, val) {
   return prop > val;
}

在视图中:

ng-repeat="row in myModel" | filter: firstFilter| | filter:{ 'DateColumn': (new Date()) }:gteComparator

| filter: greaterThan('DateColumn', new Date())

但是none工作,我该怎么办?

angular.module('app', []);

angular.module('app').filter('greaterThanToday', () => {
  const now = new Date(); 
  const day = now.getDate();
  const month = now.getMonth();
  const year = now.getFullYear();
  const tomorrow = new Date(year, month, day + 1);
                             
  return (dates) => {
    return dates.filter((date) => date - tomorrow >= 0);
  };
});

angular.module('app').controller('Example', function () {
  this.dates = [];
  
  for (let i = 0; i <= 100; i++) {
    const diff = Math.round(100 * Math.random() - 50) * 24 * 60 * 60 * 1000;
    this.dates.push(new Date(new Date().getTime() + diff));
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="Example as Ex">
  <div ng-repeat="date in Ex.dates | greaterThanToday">{{date | date:"yyyy.MM.dd"}}</div>
</div>

在视图中:

ng-repeat="row in myModel | myFilter"

控制器代码:

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;
 };
});