我在第一行的代码中出错了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();
});
答案 0 :(得分:4)
在HTML文件中,请确保在主干js文件之前声明下划线js文件。
答案 1 :(得分:2)
我猜你正在使用旧版本的Backbone,这是0.5.0之前的版本。 Backbone.Router
过去被称为Backbone.Controller
但it 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
属性。你在某处覆盖它吗?