1

我在第一行的代码中遇到错误请帮助我 无法调用未定义的方法“扩展”

$(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();
});
4

3 回答 3

4

In your HTML file make sure you declare your underscore js file before your backbone js file.

于 2013-02-22T01:42:46.767 回答
2

我猜您使用的是旧版本的 Backbone,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 询问有关 Backbone 的问题,所以 Google 的结果可能是问题所在。

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

于 2012-11-01T05:17:57.990 回答
0

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

于 2012-11-01T04:49:10.723 回答