Привет всем Я хочу фильтровать такие элементы, как (Дата начала и окончания), которая основана на Due_date
используя функциональность daterange в приложении meanjs. то я попробовал много способов, но не смог получить решение, если кто-нибудь знает решение, пожалуйста, помогите мне..... My Plunk
Пожалуйста, посмотрите на мой плункер.
Я показываю Due_date
, поэтому это поле, которое я хочу использовать для фильтрации.
Я использовал некоторые функции для добавления invoice_Date
и terms
, которые дают ответ вроде Due_date
. за исключением: - invoice_date: 2016-09-10
, условия: 6
, ответ я получил Due_date: 16-09-2016
поэтому, что я с нетерпением ищу, я хочу отфильтровать Due_date
как дату начала и дату окончания: например: - если мы выберем дату начала, например 16-09-2016
а дата окончания - 25-09-2016
в таблице, эти две транзакции нужно отображать или фильтровать... поэтому я использовал фильтр daterange для достижения этого решения, но не смог получить решение, пожалуйста, помогите нам.
фильтр 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"
Это ниже поданной необходимо фильтровать в таблице: -
Срок оплаты:-
<td> {{addDays(data.invoice_date,data.terms) | date:'dd-MM-yyyy'}}</td>
Вы можете создать собственный фильтр для этого
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;
};
});