更改主干网址

时间:2014-02-24 07:23:21

标签: javascript ruby-on-rails backbone.js

我是骨干新手。我想用骨干在浏览器中更改网址。问题是主干仅在#之后替换最后一个参数。

示例

http://localhost:3000/home#projects

运行以下行

Backbone.history.navigate( "welcome-user", { trigger: true, replace: true } )

输出

http://localhost:3000/home#welcome-user

我想要

http://localhost:3000/#welcome-user

我知道我所缺少的东西非常简单......

3 个答案:

答案 0 :(得分:1)

Backbone只管理运行位置后的URL片段。换句话说,如果您希望网址为http://localhost:3000/#welcome-user,则必须从index.html开始运行Backbone应用,而不是从home.html

运行

答案 1 :(得分:1)

如果在启动Backbone.history

时启用pushState,则可以获得(几乎)这个

Backbone.history.start({pushState: true})

基本上,它不是替换哈希值,而是替换整个URL。所以,如果你在

http://localhost:3000/home

然后跑

Backbone.history.navigate( "welcome-user", { trigger: true, replace: true } )

你最终会在

http://localhost:3000/welcome-user

(从技术上讲你用哈希问了http://localhost:3000/#welcome-user - 但我相信pushState一般就是你要找的东西)

请记住,pushState支持很好,但not universal

答案 2 :(得分:0)

如果上述解决方案不符合您的要求,您可以随时执行以下操作:

Backbone.history.navigate( "welcome-user", { trigger: false } )

这将更新你的网址,而不做任何其他事情。