设置Backbone路由器

时间:2013-09-02 07:00:38

标签: javascript jquery html backbone.js url-routing

无法弄清楚我的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});
})

如果一切顺利,我的代码中的其他地方可能存在错误。

2 个答案:

答案 0 :(得分:3)

Backbone.router正在扩展hashbang导航。 所以      本地主机/#类/测试

应该导致你的方法。也!注意emty路由应该在路由列表的末尾。 它就像构造一样,如果路线匹配“”(默认#?!),它将永远不会匹配其他路线

答案 1 :(得分:0)

默认情况下,路由将使用散列尝试localhost / #classes / test