私はまだAngularJSを初めて使用するので、単純なCRUDアプリを実行しようとしています。現在、コントローラーによって処理される$http
データを(JSONファイルで)プルしています。div
MyCtrl1
function MyCtrl1($scope, $http) {
$http.get('data/accounts.json').success(function(data) {
$scope.accounts = data;
...
});
}
この中にdiv
はtable
次のものがあります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
最も時間がかかっていることがわかりました。これは、私が行っているすべてのフィルタリングに関係していると思います。