Angularjs Фильтрация поля на основе начальной и конечной даты?

0

Привет всем Я хочу фильтровать такие элементы, как (Дата начала и окончания), которая основана на 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>
Теги:
meanjs

1 ответ

2
Лучший ответ

Вы можете создать собственный фильтр для этого

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;
      };
    });
  • 1
    plnkr.co/edit/qxqVJmpl3T88eZV5oWrX?p=preview просмотреть этот плункер
  • 1
    спасибо за обновленный плункер ... Фильтр начальной даты работает отлично, если мы выберем конечную дату, она не будет отображать правильную транзакцию в таблице. Например: - начальная дата: В 2016 году должно отображаться три транзакции, но в таблице отображаются только две транзакции, поэтому проверьте и обновите ... спасибо ...
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню