【发布时间】:2013-07-12 22:47:44
【问题描述】:
我正在尝试在 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
});
});
【问题讨论】:
标签: backbone.js backbone-routing