强制页面刷新链接在backbone.js中单击

时间:2013-07-01 07:54:16

标签: javascript jquery backbone.js

在我的backbone.js应用程序中,我希望能够触发一个简单的链接。

 <a href=/logout">Log Out</a>

现在我将它与路由器一起使用:

logout: function() {
  window.location = '/logout';
}

是否可以直接从html调用此链接,就像普通链接一样?作为通知,路由器已启用pushState。

2 个答案:

答案 0 :(得分:2)

我喜欢来自backbone-boilerplate项目的解决方案 - https://github.com/backbone-boilerplate/backbone-boilerplate/blob/master/app/main.js#L22

答案 1 :(得分:2)

这实际上是关于如何将您的活动附加到<a>代码。最简单的方法是将rel="external"添加到您不希望它们触发骨干路由器的链接。类似的东西:

$('body').on('click', 'a[href][rel!="external"]', function(e){
    app_router.navigate($(this).attr('href'), {trigger: true});
    e.preventDefault();
});

将您的HTML修改为:

<a href=/logout" rel="external">Log Out</a>