history.start()函数在骨干中不起作用

时间:2013-01-20 12:19:06

标签: javascript jquery backbone.js

我是新尝试在骨干网中使用路由器,但我的Backbone.history.start()方法不起作用。它给我以下错误

Uncaught TypeError: Cannot call method 'start' of undefined 

这是我的代码

(function ($) {
window.App = {
    Models: {},
    Collections: {},
    Views: {},
    Router: {}
};

window.Template = function (id) {
    return _.template( $('#' + id).html() );
};

App.Router = Backbone.Router.extend({
    routers: {
        '': 'index'
    },

    index: function () {
        console.log('index page');
    }
});

var r = new App.Router;
Backbone.history.start();
})(jQuery);

如何删除此错误?

2 个答案:

答案 0 :(得分:3)

这是因为您的路由器中没有routes。 你有routers并且它不一样:)

答案 1 :(得分:1)

将路由器更改为路由

App.Router = Backbone.Router.extend({
    routes: {
        '': 'index'
    },

    index: function () {
        console.log('index page');
    }
});

现在创建路由器对象并启动骨干历史记录。

app = App.Router();
Backbone.history.start();