无法调用未定义的方法'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();
});

在您的HTML文件中,请确保在骨干JS文件之前声明下列JS文件。

我猜您正在使用旧版本的骨干,pre-0.5.0。Backbone.Router曾经称为Backbone.Controller,但被称为0.5.0的一部分:

0.5.0 - 2011年7月1日

[...] Controller已更加清晰地重命名为Router

第二次Google命中"骨干教程"的命中率是使用0.3.3的本教程。最近似乎有很多人使用0.3.3询问有关骨干的问题,因此Google结果可能是问题。

您应该升级到最新版本(0.9.2)的骨干,可以从骨干网站获得。您可能还应该使用最新版本的下划线(1.4.2),您可以在下划线网站上获得。

由于某种原因,您的骨干对象上没有Router属性。您在某个地方覆盖它吗?

最新更新