0

无法弄清楚我的 Backbone 路由器出了什么问题。任何人都可以在以下代码块中发现错误吗?索引路由工作正常,但类路由从未触发(例如,当我导航到类似的 URL 时localhost/classes/test

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});
})

如果一切看起来都井井有条,那么我的代码中的其他地方可能存在错误。

4

2 回答 2

3

Backbone.router 正在扩展 hashbang 导航。所以 localhost/#classes/test

应该导致你的方法。还!注意 emty 路由应该在路由列表的末尾。这就像 else if 构造,如果路由匹配 "" (默认 # ?!) 它永远不会匹配其他路由

于 2013-09-02T15:53:56.307 回答
0

默认情况下,该路由将使用哈希尝试 localhost/#classes/test

于 2013-09-02T14:03:41.913 回答