使用AngularJS按日期过滤(作为字符串)

时间:2014-04-09 15:13:17

标签: angularjs filtering

我以这种格式从外部API获得json响应:

catno: "DNO 2CD, DOMUS02CD"
country: "US"
format: "CD, Album"
id: 14124
label: "Domino USA, Domino USA"
released: "2001-10-09"
resource_url: "http://api.discogs.com/releases/14124"
status: "Accepted"
thumb: "http://api.discogs.com/image/R-150-14124-001.gif"
title: "Pause"

由于我试图仅显示年份并且响应以字符串形式返回,我使用Truncate module仅显示前4个字符,但是当我尝试订购时通过version.released的ng-repeat,它不起作用,因为数组以随机顺序返回,orderby将按照它们被转储的相同顺序显示结果。

 <li class="row" ng-show="versions" ng-repeat="version in versions | filter: \'!file\' | orderBy: version.released"> \
     <div class="col-md-1">{{(version.released | release:4) || \'-----\'}}</div> \
 </li> \

有关如何正确编写orderby的任何提示?

我认为在&#34;发布&#34;中编写自定义过滤器可能是个好主意。截断过滤器,但我不知道如果这实际上是正确的方法。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

指定要作为字符串排序的属性(记住要转义',因为这是字符串模板的一部分):

<li ng-repeat="version in versions | filter: \'!file\' | orderBy: \'released\'">

这是一个有效的演示:http://plnkr.co/In3neXDQ6wXgc8ZI2hkX