微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在大数据集上使用多个过滤器的angularjs-ng-repeat

我还是新的AngularJS,所以我只是想做一个简单的CRUD应用程序。目前,我使用控制器MyCtrl1处理的div中的$ http数据(在JSON文件中)。
function MyCtrl1($scope,$http) {
    $http.get('data/accounts.json').success(function(data) {
        $scope.accounts = data;
    ...
    }); 
}

在这个div里面有一个带有以下tbody的表:

<tbody>
    <tr ng-repeat="account in accounts | orderBy:sort.field:sort.desc | startFrom:currentPage * pageSize | limitTo:pageSize">
        <td contentEditable="true" ng-repeat="(label,value) in account" ng-show="fields[label].visible">{{value}}</td>
    </tr>
</tbody>

orderBy过滤器根据所选字段进行排序; startFrom将数组切成在某点开始; limitTo根据预设页面大小过滤。没有分页过滤器的性能是非常可怕的,但我想知道是否有另一种方法去做这个?

我有Chrome的Batarang,在性能选项卡下,它显示ngRepeatWatch占用了最多的时间,我认为它与所有的过滤我做的。

{{ expression | filter1 | filter2 }}

只是使用

<tr ng-repeat="account in accounts | filter1 | filter2 | filter3" >
  <td contentEditable="true" ng-repeat="(label,value) in account" ng-show="fields[label].visible">{{value}}</td>
</tr>

Angular 2使用pipes,但它看起来像过滤器:

<div>The chained hero's birthday is
<p>{{  birthday | date:'fullDate' | uppercase}}</p>
<div>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐