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

前端之家收集整理的这篇文章主要介绍了在大数据集上使用多个过滤器的angularjs-ng-repeat前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我还是新的AngularJS,所以我只是想做一个简单的CRUD应用程序。目前,我使用控制器MyCtrl1处理的div中的$ http数据(在JSON文件中)。
  1. function MyCtrl1($scope,$http) {
  2. $http.get('data/accounts.json').success(function(data) {
  3. $scope.accounts = data;
  4. ...
  5. });
  6. }

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

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

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

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

{{ expression | filter1 | filter2 }}

只是使用

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

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

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

猜你在找的Angularjs相关文章