web-dev-qa-db-fra.com

Sails.Js - Comment je fais la pagination dans les voiles.Js

Je veux créer une table paginée à l'aide de sails.js, mongodb et waterline-ORM. 

Existe-t-il un moyen spécifique de faire la pagination dans sails.js?

18
sasitha999

http://sailsjs.org/#/documentation/concepts/ORM/Querylanguage.html

Model.find().paginate({page: 2, limit: 10});

Model.find({ where: { name: 'foo' }, limit: 10, skip: 10 });

Si vous voulez que la pagination fonctionne de manière asynchrone, il est très facile à faire avec JQUERY $$.getJSON et sur le serveur res.json();

Il y a beaucoup d'informations sur la ligne de flottaison et les voiles.

27
Martin Malinda

Il y a aussi un autre moyen.

si vous souhaitez récupérer des données du serveur frontal et que Blueprint est activé, vous pouvez également essayer: http://votreDomain.com/NomModèle?skip=10&limit=10

Référence: 1. site officiel: http://sailsjs.org/#/documentation/reference/blueprint-api/Find.html

7
fandyst

Je pense que vous pouvez aussi le faire avec io:

io.socket.get('/thing', {limit: 30, skip: 30*pageNum}, function(things, jwr) { /*...*/ })
0
Noitidart

Vous pouvez créer un paginateur fonctionnel avec les paramètres de requête skip & limit intégrés pour les itinéraires de plan directeur:

/api/todos?skip=10&limit=10

Avec cette option, vous pourriez avoir une taille de page dynamiquement dimensionnée en fonction de différentes tailles de périphérique. Cette option vous serait fournie avec limit, qui correspond à la taille de votre page. Multipliez (taille de page - 1) par le numéro de page en cours - voila, vous avez votre paramètre skip.

Pour savoir comment obtenir le nombre total d'éléments, je n'ai pas trouvé de méthode intégrée pour le faire. J'ai donc écrit un petit middleware d'aide ( https://github.com/xtrinch/sails-pagination -middleware ) pour renvoyer le nombre total dans le JSON de réponse de la manière suivante:

{
    "results": [
        {
            /* result here */
        },
        {
            /* another result here */
        }
    ],
    "totalCount": 80
}

Tout ce que vous avez à faire est d’installer le middleware via npm et de l’ajouter à votre middleware en http.js.

Si vous avez besoin d'un exemple entièrement fonctionnel, j'ai également un exemple d'application à faire avec ce type de pagination sur github: https://github.com/xtrinch/vue-sails-todo . C'est écrit avec vue, mais vous devriez avoir l'idée de chaque cas.

Notez que cette réponse nécessite voiles 1.x.

0
xtrinch