Angularjs根据开始日期和结束日期过滤字段?
问题描述:
大家好,我想筛选诸如(开始和结束日期)这样的项目,这是基于Due_date
使用meanjs应用程序中的日期范围功能。然后,我尝试过很多方法,但无法得到解决办法,如果任何人知道的解决方案,请帮助我..... My PlunkAngularjs根据开始日期和结束日期过滤字段?
请大家看我的plunker参考。
我有显示
Due_date
,所以这是我想用于过滤的字段。我已经使用了一些功能来添加
invoice_Date
和terms
,它提供了像Due_date
这样的答案。 为exmple: - invoice_date:2016-09-10
,术语:6
,我DUE_DATE答案:16-09-2016
所以我excatly寻找,我要筛选的
Due_date
开始日期和结束日期:例如: -如果我们选择16-09-2016
开始日期和结束日期是25-09-2016
表中这两个事务只需要显示或过滤...所以我用daterange过滤器来实现这个解决方案,但无法得到解决方案,请帮助我们。的日期范围过滤器,如果我们使用ng_module是
invoice_date
可以正常使用,但我们不知道如何筛选Due_date
申请,请帮助我们.... My Plunker
控制器:
.filter('dateRange', function() {
return function(records, dateKey, from, to) {
return records.filter(function(record) {
return !moment(record[dateKey], 'YYYY-MM-DD').isBefore(moment(from))
&& !moment(record[dateKey], 'YYYY-MM-DD').isAfter(moment(to));
});
}
})
HTML:
<input type="date" class="form-control" name="from" ng-model="from">
<input type="date" class="form-control" name="to" ng-model="to">
过滤器: -
ng-repeat="data in record | dateRange : 'invoice_date' : from : to"
这下面的申请需要过滤表: -
DUE_DATE: -
<td> {{addDays(data.invoice_date,data.terms) | date:'dd-MM-yyyy'}}</td>
- 我创建plunker供参考: - My plunker
答
可以为此
HTML
<tr ng-repeat="data in record | myfilter:from:to">
<td> {{data.supplier_name}}</td>
<td> {{data.invoice_date}}</td>
<td> {{data.terms}}</td>
<td> {{addDays(data.invoice_date,data.terms) | date:'yyyy-MM-dd'}}</td>
</tr>
JS
app.filter("myfilter", function() {
return function(items, from, to) {
var df = from;
var dt =to;
var result = [];
for (var i=0; i<items.length; i++){
var date = new Date(items[i].invoice_date);
date.setDate(date.getDate() + parseInt(items[i].terms));
var tf = date;
if (tf > df && tf < dt) {
result.push(items[i]);
}
}
return result;
};
});
http://plnkr.co/edit/qxqVJmpl3T88eZV5oWrX创建自定义过滤器?p =预览查看这个plunker –
感谢更新的plunker ...如果我们选择结束日期它没有显示正确的交易在表中例如: - 开始日期: - 16-09-2016然后,如果我们选择结束日期如2016年9月28日,它应该需要显示三笔交易,但只有两笔交易显示在表中,所以请检查并更新...谢谢... –
请将月份更改为9月份的第一份。目前它将设置为十月 –