如何在Backbone.js中触发Backbone.Router事件?

cha*_*oor 11 url-routing backbone.js backbone-routing

Backbone.js中的路由器负责路由客户端页面,并根据URL将它们连接到操作和事件.但是如何触发网址更改呢?我的意思是,如果这样做的唯一方法是将与页面路由关联的元素包含在<a>标记中.

因为我已经将mousedown和mouseup事件与用于路由的元素相关联,所以如果我将它放在<a>tag中,mousedown和mouseup事件肯定会变得无效,因为它会与<a>tag 的click事件冲突.那么还有其他方法可以进行路由吗?

mu *_*ort 32

你可以使用Router#navigate:

导航 router.navigate(fragment, [options])

每当您在应用程序中找到要保存为URL的点时,请调用导航以更新URL.如果您还想调用路由功能,请将触发选项设置为true.

因此,如果你的路由器是,r并且你想激活路由#/some_route,那么你可以:

r.navigate('some_route', { trigger: true });
Run Code Online (Sandbox Code Playgroud)

演示(请打开你的控制台):http://jsfiddle.net/ambiguous/xkZtB/