【发布时间】:2017-11-09 02:58:30
【问题描述】:
我似乎无法使这个日期范围filter 工作?当我选择一个日期时,它似乎会触发但它没有在var filter 中推送任何内容
我已经解决了这个问题好几个小时了,但它无济于事。
html
<div class="form-group">
<input type="date" class="form-control" ng-model="from">
</div>
<div class="form-group">
<input type="date" class="form-control" ng-model="to">
</div>
ng-重复
<tr ng-repeat="attendance in displayedCollection | dateRange:from:to ">
<td>{{ attendance.day | date: 'EEEE, MMM d'}}</td>
<td>{{ attendance.timeIn | date:'h:mm a' }}</td>
<td>{{ attendance.timeOut | date:'h:mm a'}}</td>
<td class="text-capitalize">
<i class="fa fa-map-marker" aria-hidden="true"></i> {{ attendance.details }}</td>
<td>{{ attendance.totalHrs | date:'hh:mm'}} </td>
</tr>
控制器
.filter('dateRange', function () {
return function (product, fromDate, toDate) {
var filtered = [];
if (!fromDate && !toDate) {
return product;
}
var from_date = Date.parse(fromDate);
var to_date = Date.parse(toDate);
angular.forEach(product, function (item) {
if (item.day > from_date && item.day < to_date) {
filtered.push(item); //not pushing anything
}
});
return filtered; // returning nothing
};
})
编辑:
显示的收集数据
[{
"_id": "5a03bed5c349e82fa4937430",
"details": "MHQ Lucena Branch 2",
"fullName": "Priz almarinez",
"timeIn": "2017-11-09T02:34:57.000Z",
"attendance": "admin11-09-2017",
"day": "2017-11-08T16:00:00.000Z",
"user": "admin",
"__v": 0,
"status": "Pending",
"check": false
},
{
"_id": "5a03c4e61bebc52c0737a426",
"details": "MHQ Lucena Branch 2",
"fullName": "Priz almarinez",
"timeIn": "2017-11-09T02:34:57.000Z",
"attendance": "admin11-09-2017",
"day": "2017-11-09T16:00:00.000Z",
"user": "admin",
"__v": 0,
"status": "Pending",
"check": false
},
{
"_id": "5a03c4ec1bebc52c0737a427",
"details": "MHQ Lucena Branch 2",
"fullName": "Priz almarinez",
"timeIn": "2017-11-09T02:34:57.000Z",
"attendance": "admin11-09-2017",
"day": "2017-11-10T16:00:00.000Z",
"user": "admin",
"__v": 0,
"status": "Pending",
"check": false
}]
谢谢
【问题讨论】:
-
你试过调试吗?即使是一些
console.log电话也会有所帮助 -
item.day是什么数据类型? -
@Phil
item.day是我尝试记录 from_date 和 to_date 的日期,似乎是正确的。 -
但它是字符串还是日期对象?创建一个重现问题的演示。您还验证了
Date.parse()返回的内容吗? -
@charlietfl 我已经编辑了我的帖子。
标签: javascript angularjs filter