请在这里查看我的问题.....
AngularJS DateRange - how to include the end date
如何将此功能添加到现有的ng-repeat区域设置中?当前过滤仅通过单个文本框进行 - 搜索。需要将日期和日期添加到过滤器中。
非常感谢帮助。
NG-REPEAT
<div class="itemlist" data-token="{{data.token}}" ng-repeat="data in filtered = (list | filter:search | orderBy : predicate :reverse) | startFrom:(currentPage-1)*entryLimit | limitTo:entryLimit" data-name="{{data.customerName}}" ng-click="eventHandler(data, $event)">
搜索框
<input type="text" ng-model="search" ng-change="filter()" class="form-control" placeholder="Search for...">
我尝试将NG-REPEAT改为以下但是它不起作用,模型datef / datet输入框在这个例子中没有显示......但它们确实存在。< / p>
<div class="itemlist" data-token="{{data.token}}" ng-repeat="data in filtered = (list | filter:search | myfilter:{from: datef, end: datet} | orderBy : predicate :reverse) | startFrom:(currentPage-1)*entryLimit | limitTo:entryLimit" data-name="{{data.customerName}}" ng-click="eventHandler(data, $event)">
答案 0 :(得分:0)
我认为问题在于您是如何将过滤器添加到ng-repeat
的。这个语法对我来说有点陌生,但我在这个codepen
这个的核心是理解你试图执行的表达式。我问了一个评论:
根据我的理解,我是否正确a)按日期范围过滤(starDate thru endDate)&amp; b)您希望根据键/值搜索
过滤那个“过时的”数据集
您回复:
就是这样......
话虽这么说,理解过滤器和表达式的最好方法是将它们视为一个逻辑位链。所以对此:
listData | dateRange:startDate:endDate | filter:filterCriteria
这样做:
listData
dateRange
过滤器filter
过滤器(它们很难命名为btw)最后一点是获取该逻辑链的结果并将其传递给ng-repeat进程。所以在这种情况下:
ng-repeat="obj in filtered = listData | range:startDate:endDate | filter:filterBy"
在我的示例中,我没有添加分页或orderBy
过滤器。但是你的初始过滤值包含在括号内......
(list | filter:search | myfilter:{from: datef, end: datet} | orderBy : predicate :reverse)
...可能会从括号中删除,因为您只是将每个过滤器的返回值传递给过滤器链。