orderBy在由函数结果提供时不执行任何操作

时间:2013-09-24 07:24:35

标签: angularjs

我使用ng-repeat来显示任务列表:

<div class="task_container" ng-repeat="task in tasks | orderBy:weigth(task)">
    <span >Task:<span><br><span>{{task.label}}</span>
</div>

每个任务都有一些属性,我已经定义了一个权重函数来总结这些属性:

function weight(task)
{
    var weight_value = task.priority - task.difficulty + task.interest;
    return weight_value;
}

但是,在显示页面时,根本不会对任务进行排序。

有没有更好/更正确的方法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

就这样做:

<div class="task_container" ng-repeat="task in tasks | orderBy:weigth">
    <span >Task:<span><br><span>{{task.label}}</span>
</div>

这里有一个jsFiddle:http://jsfiddle.net/pkozlowski_opensource/zjvsu/1/

此处有另一篇完整的帖子:Custom sort function in ng-repeat

并将您的体重功能附加到$ scope