Я использую crossroadsJS и hasherJS на SPA, оборудованный ручками JS. Оглядываясь назад, я, вероятно, должен был построить все это на Ember, но в последнее время нецелесообразно начинать.Обновить hasherJS/crossroadsJS маршруты
У меня есть хэш-маршруты, которые меняют мои шаблоны рулей внутри и снаружи на основе того, что было нажато. Я могу перемещаться назад и вперед между маршрутами без проблем. Однако, если я обновляю страницу, я всегда возвращаюсь к своему #/домашнему виду. Я провел некоторое исследование в 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, несколько раз, но я не могу ни о чем думать, чтобы решить проблему обновления. Заранее благодарю за любую помощь.