Я использую ngInfiniteScroll ng-модуль для разбиения на страницы. Когда я прокручиваю страницу вниз, я добавляю 20 записей в свою таблицу данных. Делая это, я каждый раз запускаю http-запрос («не очень хорошо для производительности»).
Я провел некоторое исследование и наткнулся на добавление LimitTo с помощью ngInfiniteScroll. Не уверен, как это реализовать. Может кто-нибудь, пожалуйста, дайте мне какие-либо предложения.
<table infinite-scroll='tF.loadMore()' infinite-scroll-disabled='tF.isBusy' infinite-scroll-distance='3' class="responsive">
<thead>
<tr>
<th>FIRST NAME</th>
<th>LAST NAME</th>
<th>USERNAME</th>
<th>EMAIL</th>
<th>CREATED DATE</th>
<th>STATUS</th>
<th>IS ONLINE</th>
<th>ACTIONS</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in tF.items | filter:searchFilter">
<td>{{item.FirstName}}</td>
<td>{{item.LastName}}</td>
<td>{{item.Username}}</td>
<td>{{item.Email}}</td>
<td>{{item.CreatedDate | date:'medium'}}</td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
<tfoot ng-show='tF.isBusy'>
<tr>
<td colspan="9"><spinner show="tF.isBusy" /><span class="bold">{{tF.status}}</span> </td>
</tr>
</tfoot>
</table>
/**** КОНТРОЛЛЕР.JS *****/
var vm = this;
var page = 0;
vm.items = [];
vm.isBusy = false;
vm.loadMore = function ()
{
if(vm.isBusy) return;
vm.isBusy = true;
userService.GetAllRecords(page)
.success(function (data)
{
var results = data;
for (var i = 0; i < results.length; i++)
{
vm.items.push(results[i]);
}
page++;
vm.isBusy = false;
}.bind(vm))
.error(function (error)
{
vm.status = 'Error retrieving data! ' + error.message;
})
.finally(function ()
{
vm.isBusy = false;
});
}