在我的Backbone應用程序(Rails後端)中,我使用[Handlebars] JavaScript模板(JST's)來渲染我的Backbone視圖。每當我在其中一個URL模板上進行瀏覽器刷新時,它會跳轉回根URL。我希望它在頁面刷新後保留在當前模板上。我想要做這樣的事情...如何在重新加載瀏覽器後保留相同的Backbone模板
getPage: function() {
$(window).on('beforeunload', function(){
var fragment = Backbone.history.fragment;
});
if (fragment === "this_current_template") {
return App.getCurrentTemplatePage(); // render it
} else if (fragment === "") {
return App.getFrontMainPage(); // render it
}
}
getPage
是我的骨幹App
對象的方法。我的fragment
變量不能在$(window)
事件處理程序之外識別。我似乎無法找到一種方法來將我以前的Backbone.history.fragment
保存在一個變量中,即使我使全局變爲fragment
。刷新後全部清除。我知道Backbone.history.loadUrl(Backbone.history.fragment);
,但我無法讓它工作。它似乎只能在瀏覽器刷新之前工作。
這是我必須改變我的後端代碼的root
路線嗎?或者有沒有辦法在頁面重新加載時使用Backbone/JS來保存當前頁面?任何幫助,將不勝感激!
我想嘗試Backbone.history.navigate(yourRoute)...默認情況下應該更改瀏覽器url欄而不重新加載頁面。 – billjamesdev
非常感謝。我使用'sessionStorage.setItem('fragment',fragment);'在刷新後保留片段。然後,我使用了'Backbone.history.navigate(fragment);'來確保我找到了正確的URL。 – Matt