In my backbone.js project, I need a method which triggered only when window.location.hash change. I found some alternative solution for my problem as here.
Also, I can solve this problem by creating a event in my backbone view initialize function as below
Backbone.View.extend({
initialize() {
$(window).on('hashchange',()=> {
console.log('yes hashchange events works')
});
}
But I seek for a solution which uses backbone.js's eventDelegates or listenTo
Thanks in advance
You can use Backbone.history for this scope.
History serves as a global router (per frame) to handle hashchange events or pushState, match the appropriate route, and trigger callbacks. You shouldn't ever have to create one of these yourself since Backbone.history already contains one.
Because it triggers a callback, you can listen for hashchange events:
Backbone.history.on("all", function (route, router) {
console.log(window.location.hash);
});
or
Backbone.history.on("route", function () {
console.log(window.location.hash);
});