Can't get Backbone routes without hashes?

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

Answers:

Answer

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

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.