在Angular中对计算字段进行排序

时间:2015-08-29 13:13:27

标签: angularjs

有没有办法按角度对计算字段进行排序?如何对totalTime的计算列中的值进行排序?

项目中的项目:orderBy [' field1']

ps aux | grep mysql
kill -9 pid

2 个答案:

答案 0 :(得分:1)

您可以添加一个过滤器来计算totalTime,并在应用orderBy过滤器之前将其作为属性添加到项目中。请参阅此working fiddle

<div ng-repeat="item in items | getTotalTime | orderBy:['totalTime']">
    {{item.field1}}
    {{item.totalTime}}
</div>

过滤器

app.filter('getTotalTime', function() {
    return function(items) {
        for(var i=0; i<items.length; i++) {
         var item = items[i];
         item.totalTime = item.date1 + item.date2;

        }
        return items;
    }
});

答案 1 :(得分:0)

来自https://docs.angularjs.org/api/ng/filter/orderBy

  

比较器用来确定元素顺序的谓词。

     

可以是以下之一:

     

功能:Getter功能。此函数的结果将使用&lt;,===,&gt;进行排序。操作

     

string:...

<body ng-app="app" ng-controller="MainController as main">
  <ul>
    <li ng-repeat="i in main.items | orderBy:main.inverse:true">{{ i }}</li>
  </ul>
</body>


function MainController() {
    var vm = this;
    vm.items = [ 3, 2, 1];
    vm.inverse = function (i) {
      return 1/i;
    }
}