orderby 字符串值问题

Issue with orderby a String value

我正在尝试按 ng-repeat 中的值排序,但它似乎不起作用。

我在以下代码笔中重现了这个问题: CodePen

N.B:orderBy 'book.contents.date' 无效:111 是第一个应该是最后一个。

<li class="animate-repeat fc-event" ng-repeat="book in books | orderBy:'book.contents.date'| filter:searchText as results track by book.contents.name"  
             id="{{book.id}}">

上面的问题现在是 contents.date 是您数据中的字符串。您需要将其转换为 int 才能使其正常工作。解决办法是,

创建一个将字符串转换为 int 的函数,如下所示,

 $scope.sort = function(num) {
    var newNum = parseInt(num.contents.date);
    return newNum;
  };

并在 HTML 中将其称为 ,

  <li class="animate-repeat fc-event" ng-repeat="book in books | orderBy : sort : false | filter:searchText as results track by book.contents.name"   id="{{book.id}}">

DEMO CODEPEN