Как использовать событие hashchange в делегатах события backbone.js?


person Abu Hanifa    schedule 04.05.2016    source источник


Ответы (2)


Вы можете использовать Backbone.history для этой области.

History служит глобальным маршрутизатором (для каждого кадра) для обработки событий hashchange или pushState, сопоставления соответствующего маршрута и запуска обратных вызовов. Вам никогда не придется создавать один из них самостоятельно, так как Backbone.history уже содержит его.

Поскольку он запускает обратный вызов, вы можете прослушивать hashchange событий:

Backbone.history.on("all", function (route, router) {
    console.log(window.location.hash);
});

or

Backbone.history.on("route", function () {
    console.log(window.location.hash);
});
person Endre Simo    schedule 04.05.2016
comment
к сожалению, у меня это не сработало, потому что для параметра hashChange для Backbone.history установлено значение false, но этот обходной путь помог: ´ window.addEventListener('hashchange', this.handleHashChange); - person RZ87; 07.02.2018

попробуйте это для инициализации функции:

window.addEventListener('hashchange', function {
    var currentHash = location.hash;

    console.log('currentHash', currentHash);
})
person RZ87    schedule 07.02.2018