渲染Backbone View后,我注入了用jQuery生成的HTML。此HTML还包括应用程序中的链接。如果单击这些链接,则会重新加载该站点。
如何绑定这些链接以便它们触发路由器并且不重新加载网站?
答案 0 :(得分:3)
您必须将点击事件绑定到这些链接并致电Router.navigate
。来自事件处理程序的return false
非常重要,因为这会阻止borwser实际关注链接。另一个重要的事情是通过trigger: true
实际让您的路由器执行(否则它只会更改地址栏中显示的URL)。
events : {
'click a.changeView' : 'changeView'
},
changeView : function(e) {
Router.navigate(e.target.href, { trigger: true });
return false;
}
此外,如果您的href
包含协议,域名等,则可能需要稍微调整一下......例如,如果您的href
为http://mydomain.com/mypage
,则可能只需要通过mypage
到路由器。