ページを更新せずにボタンイベントとURLの両方からインベントリ更新を行う正しい方法は何でしょうか。したがって、url param idがルートに基づいている場合、特定のページにそれを更新します。ショッピングサイトの商品ページのように。以下は、ajaxリクエストを介して動作しますが、url(inventory/2)ではなく、レンダリングされたビューではなく、投稿されたデータになります。 URLで特定のページに移動できるようにする必要があるので、リンクすることができます。また、javascriptが有効になっていない場合は、標準的なページの読み込みに戻す必要があります。人間のユーザのための1とスクリプト(API)のための1:ページを再ロードせずにajaxとurlでページを更新する(node.js)
ビュー(在庫)
extends layout
block content
div.row
div.col-md-offset-2.col-md-8#inventory
a(class='btn', href='#') Get More!
script.
$(function(){
$("a.btn").on("click", function(e) {
e.preventDefault();
$.get('/inventory/2', function(data) {
$('#inventory').html(data);
});
});
});
ルート
router.get('/inventory/:id?', function (req, res) {
if(req.params.id){
var id = req.params.id;
var data = "Updated and now on page " + id
res.send(data);
}else{
res.render('inventory');
}
});
JSON API用に2つのルートを作成し、別々のルートを作成することが問題の解決策でした。 – AlexC