Używam ui-Bootstrap i staram się, aby działała na stronach, ale wydaje mi się, że czegoś brakuje. Przeczytałem dokumentację i spojrzałem na bandę pluginów, aby spróbować ustalić, w jaki sposób określają, które treści należy paginować, ale nie mam szczęścia.Jak mogę poinformować ui-Bootstrap, jakie treści należy paginować?
Oto co mam zrobić http://plnkr.co/edit/5mfiAcOaGw8z8VinhIQo?p=preview
<section class="main" ng-controller="contentCtrl">
<div ng-repeat="friend in friends">
{{friend.name}}
</div>
<pagination total-items="totalItems" items-per-page="itemsPerPage" ng-model="currentPage" ng-change="pageChanged()"></pagination>
<p>
total Items: {{totalItems}}<br />
Items per page: {{itemsPerPage}}<br />
Current Page: {{currentPage}}
</p>
</section>
Kontroler:
angular.module('plunker', ['ui.bootstrap'])
.controller('contentCtrl', function ($scope) {
$scope.friends = [
{'name':'Jack'},
{'name':'Tim'},
{'name':'Stuart'},
{'name':'Richard'},
{'name':'Tom'},
{'name':'Frank'},
{'name':'Ted'},
{'name':'Michael'},
{'name':'Albert'},
{'name':'Tobby'},
{'name':'Mick'},
{'name':'Nicholas'},
{'name':'Jesse'},
{'name':'Lex'},
{'name':'Robbie'},
{'name':'Jake'},
{'name':'Levi'},
{'name':'Edward'},
{'name':'Neil'},
{'name':'Hugh'},
{'name':'Hugo'},
{'name':'Yanick'},
{'name':'Matt'},
{'name':'Andrew'},
{'name':'Charles'},
{'name':'Oliver'},
{'name':'Robin'},
{'name':'Harry'},
{'name':'James'},
{'name':'Kelvin'},
{'name':'David'},
{'name':'Paul'}
];
$scope.totalItems = 64;
$scope.itemsPerPage = 10
$scope.currentPage = 1;
$scope.setPage = function (pageNo) {
$scope.currentPage = pageNo;
};
$scope.pageChanged = function() {
console.log('Page changed to: ' + $scope.currentPage);
};
$scope.maxSize = 5;
$scope.bigTotalItems = 175;
$scope.bigCurrentPage = 1;
});
Próbowałem tego i mogę go zaktualizować treść, ale w końcu mam więcej stron, które są rzeczywiste. Zaktualizowałem Plunkera http://plnkr.co/edit/5mfiAcOaGw8z8VinhIQo?p=preview, abyś mógł zobaczyć, o czym mówię. Spróbuj kliknąć cokolwiek na temat 6. – Daimz
To dlatego, że ustawiasz '$ scope.totalItems' na 64, zamiast: ' $ scope.totalItems = $ scope.friends.length; ' Tutaj obliczam długość twoją listę znajomych. Jeśli po prostu powiesz, że ma 64 elementy, mimo że nie dostaniesz oczywiście 7 stron od 64/10 = 6,4 -> 7 stron. Jednak twoja lista zawiera tylko 32 pozycje, więc dostaniesz kilka pustych stron. – LordTribual
Fajnie, naprawdę udało mi się to wymyślić, zabrało mi trochę czasu, po prostu musiałem przejść przez twój kod ponownie i myśleć o tym logicznie. Mam jeden ostatni problem. Teraz, gdy działam, działam, chcę wywołać moich "przyjaciół" z pliku JSON przy użyciu ngResource, mogę uzyskać elementy JSON do wyświetlenia bez paginacji lub mogę je uruchomić z Paginacją, ale bez pliku JSON (oryginalny sposób). Myślę, że problem leży w "filtersRecipes", ponieważ "$ scope.recipes" pokazuje poprawnie normalnie. Skonfigurowałem Plunkr, aby wypróbować Illustrate http://plnkr.co/edit/AD1AGCYIm1dZhbuoPhxX?p=preview – Daimz