这应该是超级基本但我不能让路由工作。我应该提到应用程序位于名为/ dist /的子目录中。这是我的代码:
var QuestionRouter = Backbone.Router.extend({
routes: {
"/dist/" : "startTest"
"dist/:id": "getModel"
},
startTest: function(){
console.log('home called')
},
getModel: function(){
app.getModel(id);
}
});
var app = new QuestionView;
var appRouter = new QuestionRouter;
Backbone.history.start({pushState: true});
触发此路线的网址为:
www.example.com/dist/
www.example.com/dist/12345
任何帮助都将不胜感激。
答案 0 :(得分:3)
您需要使用#
(哈希符号)。
Backbone路由器用于路由您的应用程序URL 使用哈希标签(#)
这是Backbone教程的引用:What is a router?
请参阅Backbone's Router documentation
然后您的路线将是:
www.example.com/#/dist/
www.example.com/#/dist/12345
答案 1 :(得分:0)
好的,所以我能够解决这个问题:
我的路由哈希应该如下所示:
路线:{ “”:“startTest”, “:id”:“getModel” }
我不得不删除pushState:true,这样就没有触发路由,不知道为什么:
Backbone.history.start();