Backbone.js 我的路由器无法使用“后退/前进”按钮
我的路由器如下所示:Backbone.js 我的路由器无法使用“后退/前进”按钮,backbone.js,Backbone.js,我的路由器如下所示: define(function(require) { var _ = require('underscore'), Backbone = require('backbone'), homeStageView, homeSidebarView, yxyStageView; return Backbone.Router.extend({ routes: { '/web/:route' :
define(function(require) {
var _ = require('underscore'),
Backbone = require('backbone'),
homeStageView,
homeSidebarView,
yxyStageView;
return Backbone.Router.extend({
routes: {
'/web/:route' : 'viewLoader'
},
initialize: function() {
//this._bindRoutes();
$('.link').click(function(e) {
e.preventDefault();
Backbone.history.navigate($(this).attr('href'), true);
});
},
viewLoader: function(route) {
switch(route) {
case 'home':
this.homeHandler();
break;
case 'yxy':
this.yxyHandler();
break;
}
},
// navigation handlers
homeHandler: function() {
if ( !homeStageView ) {
require(['views/home-stage-view'], function(HomeStageView) {
homeStageView = new HomeStageView();
homeStageView.render();
});
}
else {
homeStageView.render();
}
this.renderHomeSidebarView();
},
yxyHandler: function() {
if ( !yxyStageView ) {
require(['views/yxy-stage-view'], function(YxyStageView) {
yxyStageView = new YxyStageView();
yxyStageView.render();
});
}
else {
yxyStageView.render();
}
this.renderHomeSidebarView();
},
});
appRouter = new AppRouter();
if ( history && history.pushState ) {
Backbone.history.start({pushState: true});
console.log('has pushState');
}
else {
Backbone.history.start();
console.log('no pushState');
}
}))
在我的主要观点中,我是这样初始化路由器的:
define(function(require) {
var _ = require('underscore'),
Backbone = require('backbone'),
homeStageView,
homeSidebarView,
yxyStageView;
return Backbone.Router.extend({
routes: {
'/web/:route' : 'viewLoader'
},
initialize: function() {
//this._bindRoutes();
$('.link').click(function(e) {
e.preventDefault();
Backbone.history.navigate($(this).attr('href'), true);
});
},
viewLoader: function(route) {
switch(route) {
case 'home':
this.homeHandler();
break;
case 'yxy':
this.yxyHandler();
break;
}
},
// navigation handlers
homeHandler: function() {
if ( !homeStageView ) {
require(['views/home-stage-view'], function(HomeStageView) {
homeStageView = new HomeStageView();
homeStageView.render();
});
}
else {
homeStageView.render();
}
this.renderHomeSidebarView();
},
yxyHandler: function() {
if ( !yxyStageView ) {
require(['views/yxy-stage-view'], function(YxyStageView) {
yxyStageView = new YxyStageView();
yxyStageView.render();
});
}
else {
yxyStageView.render();
}
this.renderHomeSidebarView();
},
});
appRouter = new AppRouter();
if ( history && history.pushState ) {
Backbone.history.start({pushState: true});
console.log('has pushState');
}
else {
Backbone.history.start();
console.log('no pushState');
}
这对于加载所有我的视图很好,但当用户单击后退按钮时就不起作用了
地址栏中的url可能会相应改变,但仅此而已。显然,我遗漏了一些东西
有人能帮忙吗 来自:
扩展主干网.Router.extend(属性,[classProperties])
[…]请注意,您希望避免在管线定义中使用前导斜杠:
您的路线是/web/:路线
,请尝试删除前导斜杠:
routes: {
'web/:route': 'viewLoader'
}
从:
扩展主干网.Router.extend(属性,[classProperties])
[…]请注意,您希望避免在管线定义中使用前导斜杠:
您的路线是/web/:路线
,请尝试删除前导斜杠:
routes: {
'web/:route': 'viewLoader'
}