ng-repeat日期范围过滤器

时间:2016-02-24 13:27:01

标签: javascript jquery angularjs angularjs-filter

我正在使用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。

1 个答案:

答案 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链接(我的上一条评论)已更新到此解决方案。