我爲我的分頁使用ngInfiniteScroll ng-module。當我向下滾動頁面時,我將20條記錄添加到我的數據表中。通過這樣做,我實際上每次都運行一個http請求(「對性能不好)」。Angular JS ngInfiniteScroll LimitTo
我一直在做一些研究,並且遇到了使用ngInfiniteScroll添加LimitTo。不確定如何實現這個。可能有人請給我任何建議。
<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>
/**** CONTROLLER.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;
});
}
如果你不想每次都加載新數據,那麼爲什麼要使用無限滾動?你的目標是什麼? – devqon
我確實想每次都加載新數據。不過,我想知道是否有一種加載數據的替代方式,而不是每次滾動時調用一個http請求。例如在使用limitTo過濾器來追加數據時加載所有數據一次 –
是的,您可以一次加載所有數據,並在滾動時追加碎片。但我真的認爲一個http請求是你想要的無限滾動 – devqon