如何跟踪大型OrderBy的进度

时间:2016-06-02 00:08:42

标签: javascript angularjs twitter-bootstrap

我在bootstrap中有一个足够标准的动态填充表,使用以下定义

进行实例化
<table>
    <tr ng-repeat="c in controller.items : 
       orderBy:controller.predicate:controller.reverse">...</tr>
</table>

一个非常标准的函数,当使用字符串参数调用时,将使用字符串参数作为谓词对表进行排序。

controller.orderCasesBy = function (predicate) {
    controller.reverse = (controller.predicate === predicate) ? 
        !controller.reverse : false;
    controller.predicate = predicate;
}

我正在处理的页面可能有上千行,所以我试图找到一种方法来跟踪订购功能的进度并相应地更新进度条。

如果这是我第一次尝试跟踪整个表格渲染的进度的情况,我可以将ng-init函数附加到每个重复的行,可以在调用时更新进度条。但是,当表重新排序时,似乎没有调用ng-init函数,所以我想知道是否有任何我可以做的事情来实现类似的效果。

如果我不能,我很乐意听取有关追踪此方法的其他方法的建议。

1 个答案:

答案 0 :(得分:0)

您可以将一个对象参数添加到排序函数中,该函数更新其value属性(或根据需要调用它),然后使用object.value根据需要呈现状态指示器。

既然你说你对替代品持开放态度,你根本不需要主动逆转它(因此不需要指出它的进展)。 ngRepeat允许您按索引进行跟踪,这意味着您只需按反向索引顺序显示它们。

示例:

<table>
    <tr ng-repeat="c in controller.items track by $index">
        <td ng-model="controller.items[controller.items.length-($index+1)]"></td>
    </tr>
</table>