2014-10-31 64 views
0

我最近開始使用Express.js一起使用的是Node.js和渲染引擎.ejs快遞的js +節點JS +負載的.html成格,並更改URI

我想加載一個.ejs文件,基本上是一個.html格式轉換成我的頁面上的一個div。我到目前爲止已經非常熟悉如何使用jQuery的load()函數來完成它,但使用此方法後的URI仍然是相同的。如下例所示:

$('.about').bind('click', function(event){ 
    event.preventDefault(); 
    $('.container').load('about.ejs'); 
}) 

我點擊關於按鈕,它會加載大約div。但URI保持不變www.page.com/

我有它在Node.js的工作,Express.JS是如下的方式:

app.get('/about', function (req, res){ 
    res.render('about',{ 
     title: appName, 
     menu: "about" 
    }); 
}); 

有什麼辦法,我可以重新創建此行爲使用Express js,以便將URI更改爲mypage.com/about?

+0

呃......也許只是一個普通的超鏈接? .ejs支持佈局和部分等東西,所以你去了。 – Paul 2014-10-31 03:13:11

+0

是的,但我不希望頁面重新加載,只是將特定的div填充加載的HTML。有點像當你點擊Facebook上的一個鏈接,並且你的聊天窗口保持原狀,而頁面I正在加載新的數據。 – 2014-10-31 03:17:03

+0

然後你應該看看AJAX。 – t0mppa 2014-10-31 04:35:57

回答

0

試試這個。

$('.about').bind('click', function(event){ 
    event.preventDefault(); 
    $('.container').load('about.ejs'); 
    history.pushState({}, 'About', '/about'); 
}); 

但要小心。 Not all browsers support push state.有一些庫,如pjax,可以爲您處理這個問題。

+0

謝謝。它有幫助。我能說什麼。 – 2014-11-01 10:01:49