私は、nodeJSを使用して、明示、MongoDBのとハンドルバーを単純なWebアプリケーションを開発しています。 サーバー側私は特急-ハンドルバーを使用します。私は、DBを照会するとき、私はページ内のクライアントに結果を表示したい、だから、ノードJSハンドルバーに渡されたソート配列テンプレートクライアント側
var exphbs = require('express-handlebars');
// View Engine
app.set('views', path.join(__dirname, 'views'));
app.engine('handlebars', exphbs(
{
defaultLayout:'layout',
helpers: { /*my helpers*/}}));
を: /*いくつかのコード*/ router.get( '/ 」、関数(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});
}
});
はハンドルバーと非常に簡単です:
{{#each coll}}
{{this}}
{{/each}}
しかし、私はwoulクエリの結果が同じで、順序のみが変更されることを前提として、ユーザーがこの要素の配列をサーバーと再度対話せずに並べ替えることができるようにします。 htmlコードは次のようになります。
<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>
は、それがクライアント側res.render(...)を経由して渡された配列をソートする方法を存在しますか?ユーザーが選択したタグでオプションを選択した場合 、私はリストを変更するためにAJAXを使用することができますか?そしてどうやって? (常にサーバーと対話せずに、mongoDBで同じクエリを再実行しなくても)
PS:私はnodeJSとHandlebarsの初心者です。