单击按钮后,应在2个日期之间过滤数据-Angular.js

时间:2018-11-02 19:16:22

标签: html angularjs

 scope.routeToTxn = function(){
            route.reload();
            location.path('/tellers/' + routeParams.tellerId + "/cashiers/" + routeParams.cashierId  +"/txns/" +  scope.formData.currencyCode);

            return function( item, startdate,enddate ) {
                var filtered = [];
                var txnstartDate = Date.parse(txnstartDate);
                var txnendDate = Date.parse(txnendDate);
                angular.forEach(item, function(item) {
                    if(item.completed_date > txnstartDate && item.completed_date < txnendDate) {
                        filtered.push(item);
                    }
                });
                return filtered;
            };

        };
<td class="col-md-2">
    from date:
    <input id="startDate" sort type="text" datepicker-pop="dd MMMM yyyy" ng-model="txnstartDate" class="form-control" is-open="opened" min="minDate" max="restrictDate"/>
</td>

<td class="col-md-2">
    To date:
    <input id="endDate" sort type="text" datepicker-pop="dd MMMM yyyy" ng-model="txnendDate" class="form-control" is-open="opened" min="minDate" max="restrictDate"/>
</td>

<td>
    <a ng-click="routeToTxn()" class="btn btn-primary">{{'label.button.cashier.showtxn' | translate}} </a>
</td>

点击搜索按钮后,数据应通过2个日期进行过滤:

有两个插入框,其中两个日期分别为开始日期和结束日期,并且在单击搜索框后,应该可以看到经过过滤的数据

1 个答案:

答案 0 :(得分:0)

在此代码段中检查您可能希望格式化这些日期,以便在比较它们时将它们实际进行比较 https://jsfiddle.net/Lt7aP/14764/

此答案使用的格式化程序 https://stackoverflow.com/a/29774197/8101253

html

<div ng-app ng-controller="Ctrl">
    <input ng-model="date1" type="date"></input>
    <input ng-model="date2" type="date"></input>
    <input type="submit" ng-click="compare(date1, date2)"></input>
    {{array}}
</div>

javascript

function Ctrl($scope) {

      $scope.array = [new Date("2018-11-06").toISOString().split('T')[0],
        new Date("2018-11-07").toISOString().split('T')[0],
        new Date("2018-11-09").toISOString().split('T')[0]
      ];
      $scope.compare = function(date1, date2) {
        $scope.array
          .filter(x => {
            console.log(x, date1, date2)
            return x > date1 && x < date2
          })
          .forEach(x => console.log(x));

      };
    }