无法初始化主干.js视图

can't initialize backbone.js view

本文关键字:js 视图 初始化      更新时间:2023-09-26

我正在学习骨干.js并且已经遇到了问题。

我正在使用 LABjs 加载我的脚本,如下所示:

$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');

在我的测试中.js我有这个(从 backbonetutorials.com):

(function($){
SearchView = Backbone.View.extend({
    initialize: function(){
        alert("Alerts suck.");
    }
});
var search_view = new SearchView;
})(jQuery);

如您所见,这应该给我一个带有文本"Alerst 糟透了"的警报。相反,它会在我的火虫控制台上抛出一个错误 - i is not a function(34 行骨干.js)。

如果我尝试像这样初始化视图var search_view = new SearchView({el: $('#some_dom_element')});它会给我另一个错误 - invalid 'instanceof' operand i(34 行主干.js文件)。

定义了 jQuery 对象$。我可以毫无问题地初始化 Backbone .js 模型。只是视图抛出这些错误。我错过了什么?

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

编辑:在主干之后加载jQuery时.js当我在视图初始化之前console.log($)时,它显示tha $是一个函数。那为什么骨干.js不能工作呢?有人可以解释一下吗?