我正在使用ng-repeat
将数据绑定到名称搜索过滤器:
<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>
上面的文本框有日期,但是它给出了错误:
别名'结果| myfilter:date1:date2'无效---必须是有效的JS标识符,不是保留名称。
我需要找到添加第二个过滤器并比较两个日期范围的解决方案。在我的情况下,日期不是JSON,它是正常的日期格式,例如:10-02-2016。
答案 0 :(得分:-1)
最后,我提出了一个解决方案来过滤两个日期之间的日期范围,而不是使用更多过滤器只是将字符串日期转换为日期对象并使用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>
控制器
$scope.convertdateobj = function(mydte){return new Date(mydte);});
此外,上面的plunker链接(我的上一条评论)已更新到此解决方案。