Je développe une application web simple, en utilisant nodeJS, express, MongoDB et Handlebars. côté serveur que j'utilise express-guidon:Le tableau de tri de JS Jode est passé avec le côté client du Handlebars
var exphbs = require('express-handlebars');
// View Engine
app.set('views', path.join(__dirname, 'views'));
app.engine('handlebars', exphbs(
{
defaultLayout:'layout',
helpers: { /*my helpers*/}}));
Alors, quand je fais une recherche de la db je veux montrer le résultat au client dans une page: /* du code */ router.get ('/ », fonction (req, res) {
/*query to mongo DB with mongoose*/
Coll.find(queryParams, function(err,coll){
if(err) {
console.log(err);
throw err;
}
else {
res.render('index', {'coll': coll});
}
});
Affichage le résultat est assez simple avec guidon:
{{#each coll}}
{{this}}
{{/each}}
Mais je woul d aimer permettre à l'utilisateur de trier ce tableau d'éléments sans interagir à nouveau avec le serveur, étant donné que les résultats de la requête seraient les mêmes et ne changeraient que l'ordre. le code html serait:
<select id=id>
<option>sort1</option>
<option>sort2</option>
</select>
{{#each list}}
{{this}}
{{/this}}
<script>
$(document).ready(function() {
$('#id').change(function(){
//DO SOME STUFF WITH LIST
});
</script>
Existe t-il une méthode pour trier côté client le tableau passé par res.render (...)? Si l'utilisateur choisit une option dans une balise de sélection, puis-je utiliser AJAX pour modifier la liste? Et comment? (toujours sans interagir avec le serveur et sans exécuter à nouveau la même requête sur mongoDB)
PS: Je suis débutant avec nodeJS et Handlebars, soyez patient!