Question

I want to have bookmarkable URLs that the browser can capture and handle. If I just use Backbone.history.start(), then I can use hash URLs, like /#accounts.

But I want URLs without the hashes, a la /accounts. But I can't get this to work using Backbone.history.start( { pushState: true } ) (as others have described it). My routes are straightforward, and taken directly from the documentation.

    MyRouter = Backbone.Router.extend({
        routes: {
            '/accounts': 'accounts',
        }
    });

I'm using Chrome (also tried with FF), and the behaviour is that an /accounts request goes straight to the server. Not being intercepted by Backbone first. Has anyone run into this? How do I get hash-less URL handling with Backbone?

Thanks in advance

Was it helpful?

Solution

You would navigate to that url with js using router.navigate( "/accounts", true ), not by links or entering the url yourself. To use links, you must bind a click event to them and prevent the default action and call navigate to the links href.

router is an instance of Router

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top