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?
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.
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
Je pense que vous pouvez aussi le faire avec io:
io.socket.get('/thing', {limit: 30, skip: 30*pageNum}, function(things, jwr) { /*...*/ })
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.