javascript - 没有哈希就无法获得 Backbone 路由?

标签 javascript backbone.js backbone-events

我想要浏览器可以捕获和处理的可添加书签的 URL。如果我只使用 Backbone.history.start(),那么我可以使用哈希 URL,例如 /#accounts

但我想要没有哈希值的 URL,如 /accounts。但我无法使用 Backbone.history.start( { pushState: true } ) ( as others have described it ) 让它工作。我的路线很简单,直接取自 the documentation .


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

我正在使用 Chrome(也尝试过使用 FF),行为是 /accounts 请求直接发送到服务器。不首先被 Backbone 拦截。有人遇到过这个吗?如何得到 使用 Backbone 进行无哈希 URL 处理?

提前致谢

最佳答案

您将使用 router.navigate( "/accounts", true ) 使用 js 导航到该 url,而不是通过链接或您自己输入 url。要使用链接,您必须将点击事件绑定(bind)到它们并阻止默认操作并调用导航到链接 href。

routerRouter

的实例

关于javascript - 没有哈希就无法获得 Backbone 路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8280322/

相关文章:

javascript - 如何组织多个 View 使用的 Backbone 模型?

javascript - 隐藏每个 parent 的第一个 child 以外的所有 child

javascript - 如果不是 Internet Explorer,则仅运行脚本

javascript - 让模型听嵌套模型和集合的最佳模式?

node.js - 在 node.js 服务器上重用主干路由、模型和 View

javascript - Backbone : Reference events to parent object

javascript - CSS/JavaScript。为同一属性赋值

javascript - 制作飞机座位图

javascript - Marionette.CompositeView,如何将参数传递给Marionette.ItemView

javascript - Hammer 事件委托(delegate)和主干 View 的重用