我已经定义了骨干路由器:
MyApp.router = new (Backbone.Marionette.Router.extend({
routes: {
"/m/:id": "openMovie",
"m/:id": "openMovie"
},
openMovie: function(id) {...}
});
我的html包含/m/123
之类的链接。当我点击此链接时,骨干网不会触发openMovie
功能 - 浏览器会打开新页面。为什么骨干在这种情况下不使用历史api?我怎样才能用骨干或牵线木偶来修复它?
答案 0 :(得分:2)
Backbone pushState
支持是选择加入。当您初始化所有路由器时,call
Backbone.history.start({pushState: true})
默认行为是使用url hashchange
侦听#fragments
事件,因此如果您不想使用pushState,请使用哈希网址定义链接:
<a href="#/m/123"></a>
答案 1 :(得分:0)
如果您想要兼容版本:
if (!Backbone.History.started) {
// Enable pushState for compatible browsers
var enablePushState = true;
// Disable for older browsers
var pushState = !!(enablePushState && window.history && window.history.pushState);
Backbone.history.start({ pushState: pushState });
}
>
答案 2 :(得分:0)
我找到了similar question正确答案。可能是我不善于描述我的问题 谢谢你的帮助