Angularjs 根据开始日期和结束日期过滤字段?
Angularjs Filtering the Field Based on Start Date and End Date?
大家好,我想使用 meanjs 应用程序中的 daterange 功能过滤基于 Due_date
的(开始和结束日期)等项目。然后我尝试了很多方法但无法得到解决方案如果有人知道解决方案请帮助我..... My Plunk
请看我的博主参考
我有显示Due_date
,所以这是我想用来过滤的字段。
我使用了一些功能来添加 invoice_Date
和 terms
,它提供了类似于 Due_date
的答案。 例如:- invoice_date : 2016-09-10
, 术语 : 6
, 我得到的答案 Due_date : 16-09-2016
所以我非常期待,我想过滤 Due_date
作为开始日期和结束日期: 例如:- 如果我们select 开始日期像 16-09-2016
结束日期是 25-09-2016
in table 这两个交易只需要显示或过滤...所以我使用 daterange 过滤器来实现这个解决方案,但无法得到解决方案请帮助我们。
如果我们使用 ng_module is 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"
下面的字段需要在 table 中过滤:-
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;
};
});
大家好,我想使用 meanjs 应用程序中的 daterange 功能过滤基于 Due_date
的(开始和结束日期)等项目。然后我尝试了很多方法但无法得到解决方案如果有人知道解决方案请帮助我..... My Plunk
请看我的博主参考
我有显示
Due_date
,所以这是我想用来过滤的字段。我使用了一些功能来添加
invoice_Date
和terms
,它提供了类似于Due_date
的答案。 例如:- invoice_date :2016-09-10
, 术语 :6
, 我得到的答案 Due_date :16-09-2016
所以我非常期待,我想过滤
Due_date
作为开始日期和结束日期: 例如:- 如果我们select 开始日期像16-09-2016
结束日期是25-09-2016
in table 这两个交易只需要显示或过滤...所以我使用 daterange 过滤器来实现这个解决方案,但无法得到解决方案请帮助我们。如果我们使用 ng_module is
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"
下面的字段需要在 table 中过滤:-
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;
};
});