我有一个json文件,其中包含多个具有开始日期的事件。 我想制作一个过滤器,以显示开始日期仅大于用户指定日期的事件。
用户提供日期的输入:
<label for="rechercheDate">Date de début</label>
<input type="text" id="rechercheDateDebut" class="form-control" datepicker-popup="{{format}}" ng-model="dateDebut" is-open="opened" min-date="minDate" max-date="'2015-06-22'" datepicker-options="dateOptions" date-disabled="disabled(date, mode)" ng-required="true" close-text="Close" />
<span class="input-group-btn">
<button type="button" class="btn btn-default" ng-click="open($event)"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
(我使用UI引导程序中的日期选择器(http://angular-ui.github.io/bootstrap/))
事件和开始日期显示为:
<li ng-repeat="resultats in resultatsJSON.results">
Start date: {{resultats.tra_start_date | date:'dd-MM-yyyy'}}
....
为了做我想做的事,我想我需要在我的ng-repeat中制作一个过滤器,例如:
<li ng-repeat="resultats in resultatsJSON.results |filter:resultats.tra_start_date>dateDebut">
这篇文章AngularJS : ng-repeat filter when value is greater than似乎相似但不适用于日期格式。我该怎么做?
这是一个解释我的问题的方法:http://jsfiddle.net/Daviloppeur/egf0kjzc/
答案 0 :(得分:2)
看看filter docs:
{{filter_expression | filter:expression:comparator}}
您应该为表达式使用Object,并使用比较器来检查日期:
$scope.gteComparator = function(a,b) {
return new Date(a) >= new Date(b);
};
像这样使用它:
<li ng-repeat="item in results | filter:{ start_date: start }:gteComparator>