我正在学习backbone.js并且已经有问题了。
我正在使用这样的LABj加载我的脚本:
$LAB.setOptions({BasePath : path})
.script('libs/underscore.js?v=1.3.3')
.script('libs/backbone.js?v=0.9.2')
.script('libs/jquery.js?v=1.7')
.script('libs/bootstrap.min.js?v=2.0.2').wait()
.script('test.js');
在我的test.js中我有这个(来自backbonetutorials.com):
(function($){
SearchView = Backbone.View.extend({
initialize: function(){
alert("Alerts suck.");
}
});
var search_view = new SearchView;
})(jQuery);
如你所见,这应该给我一个警告,文字“Alerst suck。”。
相反,它会在我的firebug控制台上抛出一个错误 - i is not a function
(34行的backbone.js)。
如果我尝试初始化此类var search_view = new SearchView({el: $('#some_dom_element')});
之类的视图,则会给我另一个错误 - invalid 'instanceof' operand i
(34行backbone.js文件)。
定义了jQuery对象$
。
我可以毫无问题地初始化Backbone.js模型。只是查看抛出那些错误。我缺少什么?
答案 0 :(得分:5)
似乎加载脚本的顺序很重要。我现在首先加载了jQuery,它开始工作了。我还用非缩小版的backbone.js测试了它,错误更详细$ is not a function
。所以再次 - 在backbone.js修复它之前加载jQuery。
编辑:当我在查看初始化之前console.log($)
执行{{1}}时,在backbone.js之后加载jQuery时,它显示tha $是函数。为什么backbone.js无法工作呢?有人可以解释一下吗?