无法弄清楚我的Backbone路由器出了什么问题。任何人都可以在下面的代码块中发现错误吗?索引路由工作正常但类路由不会触发(例如,当我导航到像localhost/classes/test
这样的URL时)
var app = app || {};
$(function() {
app.Router = Backbone.Router.extend({
routes: {
'' : 'index',
'classes/:id' : 'classes'
},
initialize: function() {
this.classList = new app.ClassCollection();
},
index: function() {
this.menuView = new app.ClassCollectionView({collection: this.classList});
},
classes: function(id) {
console.log("hello")
var _class = new app.ClassModel({id: id});
this.classView = new app.ClassPageView({model: _class});
}
});
router = new app.Router();
Backbone.history.start({pushState: true});
})
如果一切顺利,我的代码中的其他地方可能存在错误。
答案 0 :(得分:3)
Backbone.router正在扩展hashbang导航。 所以 本地主机/#类/测试
应该导致你的方法。也!注意emty路由应该在路由列表的末尾。 它就像构造一样,如果路线匹配“”(默认#?!),它将永远不会匹配其他路线
答案 1 :(得分:0)
默认情况下,路由将使用散列尝试localhost / #classes / test