我正在尝试在 Backbone.js 中使用 pushState 路由
问题是当我尝试使用在链接之间包含斜杠的路由时,不会调用路由器函数并且控制台会显示错误:
var Router = Backbone.Router.extend({
routes: {
"work/mobileapps": "showPortfolio"
},
showPortfolio: function(){
alert('Show Portfolio');
}
在这种情况下,永远不会调用 showPortfolio 函数。我也试过用参数来做,像这样:
var Router = Backbone.Router.extend({
routes: {
"work/:section": "showPortfolio"
},
showPortfolio: function(){
alert('Show Portfolio');
}
但问题仍然存在。
但是,如果我将路线更改为以下内容:
var Router = Backbone.Router.extend({
routes: {
"work-mobileapps": "showPortfolio"
},
showPortfolio: function(){
alert('Show Portfolio');
}
它开始工作。
所以看起来斜线有一些问题。请帮助并让我知道我犯了什么错误。
谢谢!
这是完整的代码:
//Set variables according to production/development environment
var production = 0;
var rootpath = (production) ? "/" : "Websitev2/code";
//--------------------------------------------------------------
var Router = Backbone.Router.extend({
routes: {
"work/mobileapps": "showPortfolio",
"about": "showAbout",
"work": "showWork",
"": "showHome"
},
showPortfolio: function(){
alert('Show Portfolio');
//$("#work-content").empty();
},
showAbout: function () {
alert('Show About');
},
showWork: function () {
alert('Show Work');
},
});
$(document).ready(function () {
window.router = new Router();
Backbone.history.start({
pushState: true,
root: rootpath
});
});