Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在angularjs中按日期范围过滤数据?_Javascript_Angularjs_Filter_Daterangepicker - Fatal编程技术网

Javascript 如何在angularjs中按日期范围过滤数据?

Javascript 如何在angularjs中按日期范围过滤数据?,javascript,angularjs,filter,daterangepicker,Javascript,Angularjs,Filter,Daterangepicker,我是angularjs的新手,在angularjs中找不到使用日期范围选择器过滤数据的完整解决方案。下面的代码是我花了2天时间搜索后所做的。 我想要的是使用日期范围选择器根据发布日期筛选以下数据 HTML: <!DOCTYPE HTML> <html ng-app="example"> <head lang="en"> <meta charset="utf-8"> <t

我是angularjs的新手,在angularjs中找不到使用日期范围选择器过滤数据的完整解决方案。下面的代码是我花了2天时间搜索后所做的。 我想要的是使用日期范围选择器根据发布日期筛选以下数据

HTML:

 <!DOCTYPE HTML>
    <html ng-app="example">
        <head lang="en">
            <meta charset="utf-8">
            <title>Example</title>
            <meta name="viewport" content="width=device-width, initial-scale=1.0">

            <script src="js/jquery-1.11.3.min.js"></script>
            <script src="js/angular.js"></script>
            <script src="js/moment.min.js"></script>
            <script src="js/daterangepicker.js"></script>
            <script src="js/angular-daterangepicker.min.js"></script>
            <script src="js/bootstrap.min.js"></script>

            <script src="app/app.js"></script>

            <link href="css/bootstrap.min.css" rel="stylesheet">
            <link href="css/daterangepicker.css" rel="stylesheet">
        </head>
        <body ng-controller="mainController as vm" >
            <br><br>
            <div class="container">
                <div class="row">
                    <div class="col-lg-8 col-lg-offset-2">
                        <div class="panel panel-primary">
                            <div class="panel-heading">
                                <h3>Product List</h3>
                            </div>
                            <div class="row">
                                <br>
                                <div class="col-lg-3 text-right">
                                    <h4>Filter by date :</h4>
                                </div>
                                <div class="col-lg-6">
                                    <input date-range-picker name="daterange3" 
                                           class="form-control date-picker" type="text"
                                           ng-model="date" options="opts" clearable="true" required/>
                                </div>
                            </div>
                            <div class="panel-body">
                                <table  class="table table-responsive">
                                    <thead>
                                        <tr>
                                            <th>Product</th>
                                            <th>Code</th>
                                            <th>Availabel</th>
                                            <th>Price</th>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr ng-repeat="product in vm.products">
                                            <td>{{product.productName}}</td>
                                            <td>{{product.productCode}}</td>
                                            <td>{{product.releaseDate | date }}</td>
                                            <td>{{product.price | currency}}</td>
                                        </tr>
                                    </tbody>
                                </table>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </body>
    </html>

谢谢大家…

在angular中,您可以使用管道操作符来链接操作。如下文所述

<tr ng-repeat="product in vm.products | filter:date as results">


完整的文档请参考

中的angular,您可以使用管道操作符来链接操作。如下文所述

<tr ng-repeat="product in vm.products | filter:date as results">


完整的文档请参考

我对输入有相同的问题,这是我的解决方案:

在HTML中,我使用两个日期输入

        <div class="col-md-3 form-group">
            <input type="date" class="form-control" ng-model="from">
        </div>
        <div class="col-md-3 form-group">
            <input type="date" class="form-control" ng-model="to">
        </div>
在控制器中,我将输入设置为上个月:

    $scope.from = new Date();
    $scope.from.setMonth($scope.from.getMonth()-1);
    $scope.to = new Date();
重复一遍

        <tr ng-repeat="item in items | dateFilter:from:to">
            <td>{{item.name}}</td>
            <td>{{item.date}}</td>
        </tr>

{{item.name}
{{item.date}

这对我来说很有效,我希望能有所帮助。

我对输入也有同样的问题,这是我的解决方案:

在HTML中,我使用两个日期输入

        <div class="col-md-3 form-group">
            <input type="date" class="form-control" ng-model="from">
        </div>
        <div class="col-md-3 form-group">
            <input type="date" class="form-control" ng-model="to">
        </div>
在控制器中,我将输入设置为上个月:

    $scope.from = new Date();
    $scope.from.setMonth($scope.from.getMonth()-1);
    $scope.to = new Date();
重复一遍

        <tr ng-repeat="item in items | dateFilter:from:to">
            <td>{{item.name}}</td>
            <td>{{item.date}}</td>
        </tr>

{{item.name}
{{item.date}

这对我很有用。

谢谢你的回答,但我想你不明白我想要什么。ng repeat没有问题。我需要的是不同的担心。另一种方法是在控制器中过滤结果。由于您已经查看了“date”变量,因此每次在
$watch
中更改“date”变量时,您都可以手动更改结果。类似这样的代码:
vm.product=..filter(vm.product,function(prod){prod.releaseDate=date})
。谢谢你的回答,但我想你不明白我想要什么。ng repeat没有问题。我需要的是不同的担心。另一种方法是在控制器中过滤结果。由于您已经查看了“date”变量,因此每次在
$watch
中更改“date”变量时,您都可以手动更改结果。类似这样的代码:
vm.product=..filter(vm.product,函数(prod){prod.releaseDate=date})