我是骨干新手。我想用骨干在浏览器中更改网址。问题是主干仅在#
之后替换最后一个参数。
示例
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
我知道我所缺少的东西非常简单......
答案 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 } )
这将更新你的网址,而不做任何其他事情。