2012-04-21 4 views
0

backbone.js를 배우고 있으며 이미 문제가 있습니다.backbone.js보기를 초기화 할 수 없습니다.

이 같은 LABjs 내 스크립트를로드 해요 : 내 test.js에서

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

을 나는 (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 모델을 초기화 할 수 있습니다. 그냥보기는 그 오류를 throw합니다. 내가 누락 된 것?

답변

5

스크립트가로드되는 순서는 입니다. 나는 jQuery를 처음로드했고 이제는 작동하기 시작했다. 또한 backbone.js의 축소되지 않은 버전을 사용하여 테스트했으며 오류는보다 자세한 내용을 나타냅니다 $ is not a function. 그래서 backbone.js가 jQuery를로드하기 전에 다시로드했습니다.

편집 : 바로보기 초기화하기 전에 console.log($)을 수행 할 때 backbone.js 후 jQuery를로드 할 때이 그쪽으로 $가 기능 보여줍니다. 그렇다면 backbone.js가 작동하지 않는 이유는 무엇입니까? 누군가 이것을 설명 할 수 있습니까?

관련 문제