Backbone.js :`extend`가 정의되지 않았습니까?


103

Backbone.js 시작하기. 단순히 Backbone (개발 / 프로덕션 버전)을 포함하면 오류가 발생합니다.

Uncaught TypeError: Cannot call method 'extend' of undefined 128 행 :

// Attach all inheritable methods to the Model prototype
_.extend(Backbone.Model.prototype, Backbone.Events, 

질문 : 백본뿐만 아니라 다른 JS 라이브러리와 결합하고 있습니까? 그들 없이도 여전히 오류가 발생하는지 확인해 보셨습니까?
Spudley

완전히 새로운 Rails 앱입니다. jQuery를로드하지도 않습니다! :)
매트 다비

답변:


216

문제는 내가로드하지 않았다는 것 underscore.js입니다. 나는 문서에서 그 의존성을 완전히 놓쳤다. 이런.

@tjorriemorrie의 추가 설명 : 밑줄이 있었지만 잘못된 순서로로드되었습니다. 먼저 밑줄을로드했습니다.


이것이 분명하지 않은 경우를 대비하여 추가 설명. JavaScript에서로드되는 순서는 페이지에 표시되는 순서와 관련이 있습니다. 밑줄을 먼저로드하려면이를 포함하는 스크립트 태그가 하나의로드 백본 앞에 와야합니다. 이렇게 :

<script src="underscore-1.4.4-min.js"></script>
<script src="backbone-1.0.0-min.js"></script>

2
정말 감사합니다. 내가 뭘 잘못하고 있는지, 왜 백본을로드 할 수 없는지 당황했습니다!
Victor Farazdagi 2011 년

22
밑줄이 있었지만 잘못된 순서로로드되었습니다. 첫 번째로드 밑줄 ( '종속성'이 의미하는 바를 추측합니다.)
Tjorriemorrie

11
조회수 4,600 회 이상과 찬성 55 회 이후 많은 사람들이 요구 사항을 놓치고있는 것 같습니다. 아마도 그들은 더 발음되어야 할 것입니다.
Xeoncross

@Matt Darby : Tjorriemorrie의 의견을 답변에 추가 할 수 있습니까?
sumid

2

백본 전용 하드 종속성은 backbonejs 스크립트 전에 Underscore.js로드 underscorejs 스크립트입니다.


1

순서도 중요합니다. 동일한 오류가 발생했으며 backbone.js 전에 underscore.js를 제공하기 전까지는 해결되지 않았습니다.

<script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.3.3/underscore-min.js" type="text/javascript"></script>
  <script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js" type="text/javascript"></script>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.