【问题标题】:Orderby using a function AngularJSOrderby 使用函数 AngularJS
【发布时间】:2014-07-10 14:49:54
【问题描述】:

我正在使用ng-repeat 列出对象数组中的项目。我想使用orderBy(或者一些自定义排序过滤器)对这些项目进行排序。

但是,我想要排序的字段并不包含在对象数组本身中,而是我有一个函数可以用来为每个单独的对象计算它;但它需要将每个单独的对象传递给它。

类似这样的:

<table>
    <tr ng-repeat="item in sortedItems = (items | orderBy:'getStatus(item)':reverse)">
        <td>Title: {{item.title}}</td>
        <td>Status: {{getStatus(item)}}</td>
    </tr>
</table>

getStatus 在控制器内部的位置为:

$scope.getStatus = function(item){
    var days = item.days
    if(days<=100){
        var x=100-item.days+" ";
        if(days===99){
            return x+"day left";
        }
        return x+"days left";
    }
    return "Completed";
};

所以它返回一个字符串。

有什么方法可以通过需要数组中每个单独项目的函数进行排序,以便进行排序?

【问题讨论】:

    标签: javascript angularjs angularjs-ng-repeat angularjs-orderby


    【解决方案1】:

    当然,只需从orderBy 子句中删除参数,它需要单独的项目:

    <tr ng-repeat="item in sortedItems = (items | orderBy: getStatus :reverse)">
    

    【讨论】:

      猜你喜欢
      • 2014-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-26
      • 1970-01-01
      • 1970-01-01
      • 2015-04-12
      相关资源
      最近更新 更多