在渲染一个主干视图后,我注入了用 jQuery 生成的 HTML。此 HTML 还包括应用程序内的链接。如果您单击这些链接,它们会重新加载该站点。
如何绑定这些链接,以便它们触发路由器并且不重新加载站点?
在渲染一个主干视图后,我注入了用 jQuery 生成的 HTML。此 HTML 还包括应用程序内的链接。如果您单击这些链接,它们会重新加载该站点。
如何绑定这些链接,以便它们触发路由器并且不重新加载站点?
您必须将 click 事件绑定到这些链接并调用Router.navigate
. 从您的事件处理程序中获取您很重要,return false
因为这将阻止浏览器实际跟踪链接。另一件重要的事情是传递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
给路由器。