0
我在spa模板(c#,mvc 4)中使用sammy腳本。 默認鏈接如下:/#/ home,/#/ contacts,/#/ faq等。 如何在/ home,/ contacts,/ faq上更改它們?如何更改sammy路線
我在spa模板(c#,mvc 4)中使用sammy腳本。 默認鏈接如下:/#/ home,/#/ contacts,/#/ faq等。 如何在/ home,/ contacts,/ faq上更改它們?如何更改sammy路線
散列描繪了URL的本地部分,可以使用location.hash
方法對其進行修改。如果您修改整個網址,即location.href
,瀏覽器將加載修改後的網址。
它看起來像你想要做的是改變你的本地URL,由Sammy使用,以#home
或#contacts
,所以你在開始時沒有空的散列。
下面,薩米被捕獲更改URL,如用href="#Home"
錨元素的用戶點擊,然後發送一個AJAX請求,以獲得模板:
Sammy(function() {
/* Navigation requests
*/
this.get("#:view", function() {
switch (this.params.view) {
case "Home":
$.ajax("Home/Index", {
type: "GET",
success: function (result) {
//Append result to page
},
cache: false
});
break;
case "Search":
$.ajax("Search/Index", {
type: "GET",
success: function (result) {
//Append result to page
},
cache: false
});
break;
};
});
}).run();
不完全是。 我有2條路線:「#/ home」和「#/ contact」。一切正常。 現在我想改變這兩條路線,並有以下幾點:「家」和「聯繫」(沒有'#'前綴)。當我這樣做時,瀏覽器會顯示「找不到」。我該如何「欺騙」瀏覽器? – yakov
您可以使用'location.assign(「home」)'來代替AJAX請求,但是會加載新文檔,類似於'location.href ='的工作方式。既然你說你正在構建一個單頁面的應用程序,我想你會想異步地加載並輸入新的內容到頁面,這意味着你將不得不使用本地URL,這意味着哈希。 – chrisjsherm