我正在使用 ng-repeat
将数据与名称搜索过滤器绑定(bind):
<div ng-repeat='myoldrecs in myoldrec | filter:q as results '>......</div>
$scope.myoldrec = [{name:ccc,date:13-02-2016},{name:ddd,date:14-02-2016}];
<input type="search" ng-model="q" placeholder="filter contacts..." class='form-control' style='width: 95%;'/>
到目前为止没有问题,工作正常。之后,我需要按日期范围(开始日期和结束日期)再添加一个过滤器。
添加第二个过滤器后:
<div ng-repeat='myoldrecs in myoldrec | filter:q as results | myfilter:date1:date2 '>......</div>
上面的文本框有日期,但它给出了错误:
alias 'results | myfilter:date1:date2' is invalid --- must be a valid JS identifier which is not a reserved name.
我需要找到添加第二个过滤器并比较两个日期范围的解决方案。就我而言,日期不是 JSON 格式,而是正常日期格式,例如:10-02-2016。
最佳答案
最后,我提出了一种解决方案来过滤两个日期之间的日期范围,而不是使用更多过滤器,只需将字符串日期转换为日期对象并使用 if 语句大于或小于运算符。仍然对我来说工作正常。
<div ng-if="convertdateobj(data.timconverted) >= frmdate && convertdateobj(data.timconverted) <= todate">
<!--ng-if="convertdateobj(data.timconverted) >= frmdate && data.timconverted <= todate" -->
<table>
<tr><td>{{data.label0}} - </td><td>{{data.value0}} - </td><td>{{data.timeadded}}</td></tr>
</table>
</div>
Controller
$scope.convertdateobj = function(mydte){return new Date(mydte);});
此外,上面的 plunker 链接(我的最后一条评论)已更新到此解决方案。
关于javascript - ng-重复日期范围过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35603528/