无法调用未定义的方法'extend'我在第一行的代码中收到错误

时间:2012-11-01 04:47:44

标签: backbone.js

我在第一行的代码中出错了plz帮助我无法调用未定义的方法'extend'

$(document).ready(function() {
  var Router = Backbone.Router.extend({
    routes: {
      "foo/:bar": "paramtest",
      "*action": "func"
    },
    func: function(action) {
      alert(action);
    },
    paramtest: function(p) {
      alert(p);
    }
});
new Router();
Backbone.history.start();
});

3 个答案:

答案 0 :(得分:4)

在HTML文件中,请确保在主干js文件之前声明下划线js文件。

答案 1 :(得分:2)

我猜你正在使用旧版本的Backbone,这是0.5.0之前的版本。 Backbone.Router过去被称为Backbone.Controllerit was renamed as part of 0.5.0

  

0.5.0 - 2011年7月1日

     为清楚起见,

[...] Controller已重命名为Router

第二次谷歌搜索“骨干教程”指向我at this tutorial使用0.3.3。似乎有很多人最近使用0.3.3询问有关Backbone的问题,因此Google的结果可能就是问题所在。

您应该升级到Backbone的最新版本(0.9.2),您可以从Backbone website获取它。你可能应该使用最新版本的Underscore(1.4.2),你可以在Underscore website获得它。

答案 2 :(得分:0)

由于某种原因,您的Backbone对象上没有Router属性。你在某处覆盖它吗?