Saya mencoba menambahkan halaman ke daftar saya. Saya mengikuti tutorial AngularJS, tutorial tentang smartphone dan saya mencoba menampilkan hanya sejumlah objek. Ini file html saya:
<div class='container-fluid'>
<div class='row-fluid'>
<div class='span2'>
Search: <input ng-model='searchBar'>
Sort by:
<select ng-model='orderProp'>
<option value='name'>Alphabetical</option>
<option value='age'>Newest</option>
</select>
You selected the phones to be ordered by: {{orderProp}}
</div>
<div class='span10'>
<select ng-model='limit'>
<option value='5'>Show 5 per page</option>
<option value='10'>Show 10 per page</option>
<option value='15'>Show 15 per page</option>
<option value='20'>Show 20 per page</option>
</select>
<ul class='phones'>
<li class='thumbnail' ng-repeat='phone in phones | filter:searchBar | orderBy:orderProp | limitTo:limit'>
<a href='#/phones/{{phone.id}}' class='thumb'><img ng-src='{{phone.imageUrl}}'></a>
<a href='#/phones/{{phone.id}}'>{{phone.name}}</a>
<p>{{phone.snippet}}</p>
</li>
</ul>
</div>
</div>
</div>
Saya telah menambahkan tag pilih dengan beberapa nilai untuk membatasi jumlah item yang akan ditampilkan. Yang saya inginkan sekarang adalah menambahkan pagination untuk menampilkan 5, 10, dll.
Saya memiliki pengontrol yang berfungsi dengan ini:
function PhoneListCtrl($scope, Phone){
$scope.phones = Phone.query();
$scope.orderProp = 'age';
$scope.limit = 5;
}
Dan saya juga memiliki modul untuk mengambil data dari file json.
angular.module('phonecatServices', ['ngResource']).
factory('Phone', function($resource){
return $resource('phones/:phoneId.json', {}, {
query: {method: 'GET', params:{phoneId:'phones'}, isArray:true}
});
});
javascript
angularjs
paginate
Tomarto
sumber
sumber
Jawaban:
Jika Anda tidak memiliki terlalu banyak data, Anda dapat melakukan pagination dengan hanya menyimpan semua data di browser dan memfilter apa yang terlihat pada waktu tertentu.
Berikut contoh pagination sederhana: http://jsfiddle.net/2ZzZB/56/
Contoh itu ada di daftar biola pada angular.js github wiki, yang seharusnya membantu: https://github.com/angular/angular.js/wiki/JsFiddle-Examples
EDIT: http://jsfiddle.net/2ZzZB/16/ ke http://jsfiddle.net/2ZzZB/56/ (tidak akan menampilkan "1 / 4.5" jika ada 45 hasil)
sumber
if (input?)
kondisi sebelum kembaliinput.slice(start)
, terima kasih Andy!Saya baru saja membuat JSFiddle yang menunjukkan pagination + search + order pada setiap kolom menggunakan Build with Twitter Bootstrap code: http://jsfiddle.net/SAWsA/11/
sumber
Saya telah membangun sebuah modul yang membuat pagination di memori sangat sederhana.
Hal ini memungkinkan Anda untuk paginate dengan hanya mengganti
ng-repeat
dengandir-paginate
, menentukan setiap halaman sebagai filter pipa, dan kemudian menjatuhkan kontrol mana pun Anda seperti dalam bentuk satu direktif,<dir-pagination-controls>
Untuk mengambil contoh asli yang diminta oleh Tomarto, akan terlihat seperti ini:
Tidak perlu kode pagination khusus di controller Anda. Semuanya ditangani secara internal oleh modul.
Demo: http://plnkr.co/edit/Wtkv71LIqUR4OhzhgpqL?p=preview
Sumber: dirPagination of GitHub
sumber
Saya tahu utas ini sudah tua sekarang tetapi saya menjawabnya untuk menjaga hal-hal yang sedikit diperbarui.
Dengan Angular 1.4 dan di atas, Anda dapat langsung menggunakan filter limitTo yang selain menerima
limit
parameter juga menerimabegin
parameter.Pemakaian:
{{ limitTo_expression | limitTo : limit : begin}}
Jadi sekarang Anda mungkin tidak perlu menggunakan perpustakaan pihak ketiga apa pun untuk mencapai sesuatu seperti pagination. Saya telah membuat biola untuk mengilustrasikan hal yang sama.
sumber
Lihat arahan ini: https://github.com/samu/angular-table
Ini mengotomatiskan penyortiran dan pagination banyak dan memberi Anda cukup kebebasan untuk menyesuaikan tabel / daftar Anda seperti yang Anda inginkan.
sumber
$index
dan array saya tidak mengandung nilai<td at-sortable at-attribute="index">{{sortedAndPaginatedList.indexOf(item) + 1}}</td>
tapi saya tidak tahu apakah itu jalan yang benarBerikut ini adalah kode demo tempat pagination + Filtering dengan AngularJS:
https://codepen.io/lamjaguar/pen/yOrVym
JS:
HTML:
sumber