J'ai un ensemble de données d'environ 1000 éléments en mémoire et j'essaie de créer un pageur pour cet ensemble de données, mais je ne sais pas comment procéder.
J'utilise une fonction de filtre personnalisée pour filtrer les résultats, et cela fonctionne très bien, mais je dois en quelque sorte obtenir le nombre de pages.
Des indices?
angularjs
pagination
Micael
la source
la source
Réponses:
Angular UI Bootstrap - Directive de pagination
Consultez l' interface utilisateur Bootstrap de directive de pagination . J'ai fini par l'utiliser plutôt que par ce qui est affiché ici car il a suffisamment de fonctionnalités pour mon utilisation actuelle et a une spécification de test approfondie pour l'accompagner.
Vue
Manette
J'ai fait un plunker de travail pour référence.
Version héritée:
Vue
Manette
J'ai fait un plunker de travail pour référence.
la source
pagination
élément.J'ai récemment implémenté la pagination pour le site Built with Angular. Vous pouvez vérifier la source: https://github.com/angular/builtwith.angularjs.org
J'éviterais d'utiliser un filtre pour séparer les pages. Vous devez diviser les éléments en pages dans le contrôleur.
la source
Use your downvotes whenever you encounter an egregiously sloppy, no-effort-expended post, or an answer that is clearly and perhaps dangerously incorrect.
J'ai dû implémenter la pagination à plusieurs reprises avec Angular, et c'était toujours un peu pénible pour quelque chose que je pensais pouvoir être simplifié. J'ai utilisé certaines des idées présentées ici et ailleurs pour créer un module de pagination qui rend la pagination aussi simple que:
C'est tout. Il présente les caractéristiques suivantes:
items
aux liens de pagination.ng-repeat
, afin que vous puissiez utiliser n'importe quelle expression qui pourrait être valablement utilisée dans unng-repeat
, y compris le filtrage, l'ordre, etc.pagination-controls
directive n'a pas besoin de connaître le contexte dans lequel lapaginate
directive est appelée.Démo: http://plnkr.co/edit/Wtkv71LIqUR4OhzhgpqL?p=preview
Pour ceux qui recherchent une solution "plug and play", je pense que vous la trouverez utile.
Code
Le code est disponible ici sur GitHub et comprend un assez bon ensemble de tests:
https://github.com/michaelbromley/angularUtils/tree/master/src/directives/pagination
Si vous êtes intéressé, j'ai également écrit un court article avec un peu plus d'informations sur la conception du module: http://www.michaelbromley.co.uk/blog/108/paginate-almost-anything-in-angularjs/
la source
Je viens de faire un JSFiddle qui montre la pagination + recherche + ordre par sur chaque colonne en utilisant le code btford: http://jsfiddle.net/SAWsA/11/
la source
new_sorting_order
devrait êtrenewSortingOrder
. Corrigez cela, ajoutez le@scope.search();
et vous verrez les choses se trier comme prévu, et les icônes de tri seront également mises à jour. (Exécutez le violon avec la console de débogage de votre navigateur ouverte (en chrome, F12, onglet console) et c'est évident).J'ai mis à jour le plunkr http://plnkr.co/edit/FUeWwDu0XzO51lyLAEIA?p=preview de Scotty.NET afin qu'il utilise des versions plus récentes de angular, angular-ui et bootstrap.
Manette
Composant d'interface de démarrage
la source
Il s'agit d'une solution javascript pure que j'ai enveloppé comme un service angulaire pour implémenter la logique de pagination comme dans les résultats de recherche Google.
Démo de travail sur CodePen à http://codepen.io/cornflourblue/pen/KVeaQL/
Détails et explications sur cet article de blog
la source
J'ai extrait les bits pertinents ici. Il s'agit d'un téléavertisseur tabulaire `` sans fioritures '', donc le tri ou le filtrage n'est pas inclus. N'hésitez pas à modifier / ajouter au besoin:
la source
Solution ci-dessous assez simple.
Voici un exemple de jsfiddle
la source
L'adaptateur angulaire jQuery Mobile possède un filtre de pagination sur lequel vous pouvez vous baser.
Voici un violon de démonstration qui l'utilise (ajoutez plus de 5 éléments et il devient paginé): http://jsfiddle.net/tigbro/Du2DY/
Voici la source: https://github.com/tigbro/jquery-mobile-angular-adapter/blob/master/src/main/webapp/utils/paging.js
la source
Pour tous ceux qui ont du mal comme moi à créer un paginateur pour une table, je poste ceci. Donc, selon vous:
Dans vos angularJs:
la source
J'utilise cette bibliothèque de pagination tierce et cela fonctionne bien. Il peut faire des sources de données locales / distantes et il est très configurable.
https://github.com/michaelbromley/angularUtils/tree/master/src/directives/pagination
la source
Depuis Angular 1.4, le
limitTo
filtre accepte également un deuxième argument optionnelbegin
De la documentation :
Vous n'avez donc pas besoin de créer une nouvelle directive , cet argument peut être utilisé pour définir le décalage de la pagination
la source
Vous pouvez facilement le faire en utilisant la directive Bootstrap UI.
Cette réponse est une modification de la réponse donnée par @ Scotty.NET, j'ai changé le code car la
<pagination>
directive est obsolète maintenant.Le code suivant génère la pagination:
Pour le rendre fonctionnel, utilisez ceci dans votre contrôleur:
Référez-vous à ceci pour plus d'options de pagination: Directive de pagination de l'interface utilisateur Bootstrap
la source
pagination ng-répétition
la source
Les messages précédents recommandaient essentiellement comment créer vous-même une pagination. Si vous êtes comme moi et que vous préférez une directive finie, je viens d'en trouver une excellente appelée ngTable . Il prend en charge le tri, le filtrage et la pagination.
C'est une solution très propre, tout ce dont vous avez besoin selon vous:
Et dans le contrôleur:
Lien vers GitHub: https://github.com/esvit/ng-table/
la source
Angular-Paging
est un merveilleux choix
la source
Vieille question, mais comme je pense que mon approche est un peu différente et moins complexe, je partagerai cela et j'espère que quelqu'un d'autre que moi le trouvera utile.
Ce que j'ai trouvé être une solution simple et petite à la pagination est de combiner une directive avec un filtre qui utilise les mêmes variables de portée.
Pour implémenter cela, vous ajoutez le filtre sur le tableau et ajoutez le directiv comme celui-ci
p_Size et p_Step sont des variables d'étendue qui peuvent être personnalisées dans l'étendue, sinon la valeur par défaut de p_Size est 5 et p_Step est 1.
Lorsqu'une étape est modifiée dans la pagination, le p_Step est mis à jour et déclenchera un nouveau filtrage par le filtre cust_pagination. Le filtre cust_pagination coupe ensuite le tableau en fonction de la valeur p_Step comme ci-dessous et ne renvoie que les enregistrements actifs sélectionnés dans la section de pagination
DEMO Voir la solution complète dans ce plongeur
la source
Voilà mon exemple. Bouton sélectionné au milieu de la liste Contrôleur. config >>>
Logique de pagination:
et ma vue sur bootstap
C'est utile
la source
J'aimerais pouvoir commenter, mais je vais devoir laisser ceci ici:
La réponse de Scotty.NET et le rétablissement de user2176745 pour les versions ultérieures sont tous deux excellents, mais ils manquent tous les deux quelque chose sur lequel ma version d'AngularJS (v1.3.15) se casse:
i n'est pas défini dans $ scope.makeTodos.
En tant que tel, le remplacement par cette fonction le corrige pour les versions angulaires plus récentes.
la source
la source
Je voudrais ajouter ma solution qui fonctionne avec
ngRepeat
et les filtres que vous utilisez avec elle sans utiliser un$watch
ou un tableau en tranches.Vos résultats de filtrage seront paginés!
Dans le HTML, assurez-vous d'appliquer vos filtres à l'
ngRepeat
avant du filtre de pagination.la source