Backbone.js和领先的哈希

时间:2012-04-14 17:19:27

标签: backbone.js

我有以下问题。我的Backbone应用程序的某些部分具有以下URL:

site.ru/#profile

当页面加载时,URL更改为:

site.ru/profile

所以,哈希丢失了。所以,我在Backbone的导航功能中看到了问题:

var routeStripper = /^[#\/]/;
...
var frag = (fragment || '').replace(routeStripper, '');

据我所知,这段代码在URL的开头清理一个哈希。

是否真的可以简单地删除这行代码来解决问题?你能告诉我其他一些解决方法。

TIA!

3 个答案:

答案 0 :(得分:12)

如果启用pushState,Backbone只会删除哈希值。

Backbone.history.start({pushState: true});更改为Backbone.history.start();

http://backbonejs.org/#Router

答案 1 :(得分:0)

似乎Backbone.js正在使用 / & 作为分隔符,提取根地址&子目录。 / 过滤需要tp stau tp获取“片段”。尝试删除该RegEx中的#,但保留该行的其余部分。 (并在代码中留下评论!)

我还会提交错误报告,因为它重新发送没有哈希的链接。

答案 2 :(得分:0)

遇到同样的问题,还有其他一些问题;-)(见GitHub issue

我现在已经解决了这个问题,因为没有听到哈希变化,如下所示:

Backbone.history.start({
  pushState: true,
  hashChange: false,
  root: '/'
});

这似乎对我有用。