我正在利用由handlebarsJS提供動力的SPA上的crossroadsJS和hasherJS。回想起來,我應該已經在Ember上建立了整個事情,但是這麼晚才重新開始並不明智。刷新hasherJS/crossroadsJS路線
我有哈希路由設置切換我的把手模板進出基於無論點擊。我可以在路線之間前後移動,沒有任何問題。但是,如果我刷新頁面,我總是會回到我的#/ home視圖。我已經對window.onhashchange和window.onbeforeunload做了一些研究,但是這些都沒有解決這個問題。
我有一個非常具體的方式來處理我的觀點。我有一個全局視圖對象構造的,像這樣:
views.procedures = function (template) {
this.initialize = function() {
this.el = $('<div/>');
this.el.attr('id', 'procedures');
this.el.on('click', '.returned-list li a', this.toResults); // list of API objects by name
};
this.render = function() {
var parts = {
title: 'Procedures View',
};
this.el.html(template(parts));
return this;
};
this.toResults = function() {
cache.justClicked = $(this).attr('data-id');
crossroads.addRoute('procedures/{name}', function() {
api.endpoints.procedure(cache.justClicked); // constructed elsewhere
});
};
this.initialize();
};
我提到這一點,因爲我不能簡單地在JQuery的偵聽器添加任何類型的哈希值發生變化的$(document).ready()
或$(window).onhashchange
我已經通過閱讀無論是hasherJS還是crossroadsJS文檔多次,但我無法想出任何解決刷新問題的方法。預先感謝您的幫助。