AngularJS对未格式化日期表达式的ng-repeat过滤器

AngularJS ng-repeat filter on unformatted date expression

本文关键字:ng-repeat 过滤器 表达式 日期 格式化 AngularJS      更新时间:2023-09-26

我有一些JSON我拉到我的Angular应用程序。我使用ng-repeat将JSON输出到页面,但是现在我想对日期字段进行过滤。我可以使用ng-model查询对必要的字段进行过滤。但是,来自服务器的数据在中继器本身的过滤器中被转换为特定的日期格式。因此,使用过滤盒不能像预期的那样工作。在这一点上,我不确定如何将输入到ng-model文本框中的内容转换为所需的格式。

Enter the time you left: <input ng-model="query.start">
<ul>
  <li ng-repeat="incident in Traffic | filter: query">
      <h3>{{incident.description}}</h3>
      <p>Start: {{incident.start | jsonDate : 'yyyy-MM-dd HH:mm'}}</p>
      <p>End: {{incident.end| jsonDate : 'yyyy-MM-dd HH:mm'}}</p>
  </li>
</ul>

一个选择是使用Angular UI的日期选择器来提供一个漂亮的日期选择器用户界面,而不是让用户手动输入日期。有了这个,你的ng-model是一个真正的JavaScript日期对象,而不是一个字符串。当它发生变化时,您可以将其与服务器数据中的日期进行比较,并在控制器级别对它们进行过滤。只将匹配的那些推入单独的数组,并显示数组与您的ng-repeat,而不是原来的服务器提供的数组。