无法初始化backbone.js视图

时间:2012-04-21 00:32:25

标签: javascript backbone.js

我正在学习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模型。只是查看抛出那些错误。我缺少什么?

1 个答案:

答案 0 :(得分:5)

似乎加载脚本的顺序很重要。我现在首先加载了jQuery,它开始工作了。我还用非缩小版的backbone.js测试了它,错误更详细$ is not a function。所以再次 - 在backbone.js修复它之前加载jQuery。

编辑:当我在查看初始化之前console.log($)执行{{1}}时,在backbone.js之后加载jQuery时,它显示tha $是函数。为什么backbone.js无法工作呢?有人可以解释一下吗?