javascript - ng-重复日期范围过滤器

标签 javascript jquery angularjs angularjs-filter

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

相关文章:

javascript - 显示空选项卡的指令

javascript - jqGrid GridUnload/GridDestroy

javascript - CodeMirror 正则表达式与典型 Javascript 正则表达式解析器的行为不匹配

javascript - jQuery 验证 : Validate that one field, 或一对的两个字段都是必需的

jquery - 如何使 Google Chrome 扩展运行 jQuery 脚本

css - 使用选择器在 2 个全局 SCSS 之间切换

angularjs - Protractor 可用于测试多个浏览器 session 交互吗?

JavaScript:管理/添加动态内容和页面加载的最佳方法

javascript - jQuery。查找属性所在的元素

javascript - 如何使用服务响应下载 pdf