10

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

site.ru/#profile

当页面加载时,URL 变为:

site.ru/profile

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

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

据我了解,这段代码在 URL 的开头清除了一个哈希。

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

蒂亚!

4

3 回答 3

12

如果您启用 pushState,Backbone 只会删除散列。

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

http://backbonejs.org/#Router

于 2012-04-14T23:58:29.550 回答
0

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

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

于 2012-04-14T17:34:53.867 回答
0

有同样的问题,还有其他一些问题;-)(请参阅GitHub 问题

我现在通过不听哈希更改来解决这个问题,如下所示:

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

这似乎对我有用。

于 2016-10-06T13:51:22.733 回答