Angularjs 根据开始日期和结束日期过滤字段?

Angularjs Filtering the Field Based on Start Date and End Date?

大家好,我想使用 meanjs 应用程序中的 daterange 功能过滤基于 Due_date 的(开始和结束日期)等项目。然后我尝试了很多方法但无法得到解决方案如果有人知道解决方案请帮助我..... My Plunk

控制器:

.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>

您可以为此创建自定义过滤器

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;
      };
    });