Backbone.js 中的路由器负责路由客户端页面,并根据 url 将它们连接到操作和事件。但是如何触发 url 变化呢?我的意思是如果这样做的唯一方法是将与页面路由关联的元素包含在<a>
标签中。
因为我已经将 mousedown 和 mouseup 事件与用于路由的元素关联起来,如果我把它放在<a>
tag 中,mousedown 和 mouseup 事件肯定会失效,因为它会与<a>
tag 的 click 事件发生冲突。那么还有其他方法可以进行路由吗?
Backbone.js 中的路由器负责路由客户端页面,并根据 url 将它们连接到操作和事件。但是如何触发 url 变化呢?我的意思是如果这样做的唯一方法是将与页面路由关联的元素包含在<a>
标签中。
因为我已经将 mousedown 和 mouseup 事件与用于路由的元素关联起来,如果我把它放在<a>
tag 中,mousedown 和 mouseup 事件肯定会失效,因为它会与<a>
tag 的 click 事件发生冲突。那么还有其他方法可以进行路由吗?
您可以使用Router#navigate
:
导航
router.navigate(fragment, [options])
每当您在应用程序中到达想要保存为 URL 的点时,调用navigate以更新 URL。如果您还想调用路由函数,请将触发选项设置为
true
。
因此,如果您的路由器是r
并且您想激活 的路由#/some_route
,那么您可以:
r.navigate('some_route', { trigger: true });
演示(请打开您的控制台):http: //jsfiddle.net/ambiguous/xkZtB/